Создание артефактов для нескольких архитектур Java с использованием Maven (что-нибудь лучше, чем профили)? - PullRequest
3 голосов
/ 02 марта 2011

Прочитав о каждой публикации и вопросе, которые я могу найти, я озадачен поиском лучшего способа, чем просто использование профилей для выполнения следующих действий.

Мне нужно взять один и тот же набор модулей и скомпилировать их для совершенно разных архитектур (J2ME против J2SE), им нужны разные зависимости для некоторых библиотек, и им нужны разные настройки источника / цели / отладки во время компиляции.

Используя профили и классификаторы, я могу сделать это, запустив один профиль, очистив и запустив сборку с другим профилем. Классификаторы сортируют результаты. Однако, если вы просто измените профили и перестроите его, он не будет очищаться сам по себе, он требует многократного запуска maven с супер-помпой, и он не позволит вам включить несколько профилей одновременно (и в результате беспорядок, когда ты делаешь это довольно уродливо).

Могу ли я что-то сделать, используя вложенные артефакты и принудительно запускать шаги компиляции и jar несколько раз?

Параметры javac действительно отличные: (использование профилей для зависимостей не вызывает проблем)

для J2ME:
Источник = 1,4
целевых = 1,4
-g: источник

для отладки J2ME
Источник = 1,4
целевых = 1,4

для J2SE
Источник = 1,5
целевых = 1,5

1 Ответ

2 голосов
/ 14 мая 2011

Не могли бы вы явно вызвать плагин компилятора Плагин компилятора Maven и затем определить несколько исполнений.Что-то вроде

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <executions>
        <execution>
          <id>compile1</id>
          <phase>generate-resources</phase>
          <goals>
              <goal>compile</goal>
          </goals>
          <configuration>
                <verbose>true</verbose>
                <fork>true</fork>
                <executable><!-- path-to-javac --></executable>
                <compilerVersion>1.3</compilerVersion>
            </configuration>
       </execution>
       <execution>
          <id>compile1</id>
          <phase>generate-resources</phase>
          <goals>
              <goal>compile</goal>
          </goals>
          <configuration>
                <verbose>true</verbose>
                <fork>true</fork>
                <executable><!-- path-to-javac --></executable>
                <compilerVersion>1.3</compilerVersion>
            </configuration>
       </execution>
   </executions>
  </plugin>
...