В maven - как переименовать выходной файл .war на основе имени используемого профиля
У меня есть три профиля в моем pom.xml для нашего приложения...
- dev (для использования в разработчике)
- qa (для использования на нашем внутреннем сервере qa)
- prod (производство).
Когда мы запускаем нашу сборку maven, все три профиля выпускают военный файл с тем же именем. Я хотел бы вывести $profilename-somearbitraryname.war
Любые идеи?
Ответы
Ответ 1
Вы правильно ответили:
<profiles>
<profile>
<id>dev</id>
<properties>
<rp.build.warname>dev</rp.build.warname>
</properties>
</profile>
<profile>
<id>qa</id>
<properties>
<rp.build.warname>qa</rp.build.warname>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<rp.build.warname>prod</rp.build.warname>
</properties>
</profile>
</profiles>
но есть более простой способ переопределить имя WAR:
<build>
<finalName>${rp.build.warname}-somearbitraryname</finalName>
<!-- ... -->
</build>
Нет maven-war-plugin
.
Ответ 2
Ответ прост...
Определите свойство в каждом профиле, как это...
<profile>
<id>qa</id>
<properties>
<rp.build.warname>ourapp-qa</rp.build.warname>
</properties>
</profile>
Затем добавьте это в свои плагины...
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<packagingExcludes>WEB-INF/web.xml</packagingExcludes>
<warName>${rp.build.warname}</warName>
</configuration>
</plugin>
Ответ 3
В maven вы должны использовать <bundleFileName>
в <module>
Вы должны следовать этой ссылке, чтобы убедиться, что ваши модули переписаны:
http://maven.apache.org/plugins/maven-ear-plugin/examples/customizing-a-module-filename.html
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.10.1</version>
<configuration>
[...]
<modules>
<ejbModule>
<groupId>artifactGroupId</groupId>
<artifactId>artifactId</artifactId>
<bundleFileName>anotherName-1.2.3.jar</bundleFileName>
</ejbModule>
</modules>
</configuration>
</plugin>
</plugins>
</build>