Наше приложение может быть создано для нескольких серверов приложений и использоваться в нескольких средах.
Тип сервера приложений и целевую среду следует указывать с помощью профилей Maven. Один и только один из каждого типа профиля должен присутствовать при компиляции кода. Все профили вызывают выполнение одной или нескольких задач копирования mavent-antrun-plugin для включения правильных файлов настроек в сгенерированный JAR.
Ниже приведена часть файла pom.xml. Включена часть профиля AS "oracle", а также часть профиля среды "development". Цель состоит в том, чтобы создать JAR, который можно развернуть в Oracle AS в среде разработки, код скомпилирован с использованием двух профильных переключателей mvn -P oracle,development
В профилях AS есть и другие задачи (не показаны ниже), которые должны быть выполнены до того, как будут выполнены задачи профиля среды (вот почему профили имеют разные фазы).
Моя проблема в том, что Maven отказывается выполнять задачи в обоих выбранных профилях.
mvn -Poracle
работает так, как и положено. Так же и mvn -Pdevelopment
. Однако mvn -Poracle,development
приводит к выполнению только задач в профиле оракула. Если все задачи в плагине antrun профиля oracle закомментированы, то задачи в профиле разработки выполняются.
Мои вопросы:
* Почему Maven отказывается выполнять задачи муравья в обоих этих профилях?
* Есть ли способ это исправить?
Объединение профилей (oracle-development, jboss-development и т. Д.) Для нас не вариант, так как этот модуль является частью более крупного проекта и потребует модификации нескольких других проектов.
В настоящее время мы используем Maven 2.2.0.
<profile>
<id>oracle</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<copy .../>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
...jboss, glassfish profiles...
<profile>
<id>development</id>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<copy .../>
</tasks>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
...production, test profiles...