创建多个war文件并用Maven重命名它们
Posted
技术标签:
【中文标题】创建多个war文件并用Maven重命名它们【英文标题】:Create multiple war files and rename them with Maven 【发布时间】:2022-02-03 04:56:33 【问题描述】:对于第一部分:我想在构建 maven 项目时生成多个 war 文件。 第二部分:我想动态重命名这些文件。
例如:现在生成的文件名为 test.war。如果我想在单个构建中多次生成此文件,我希望文件的名称如下:test_1.war、test_2.war、test_3.war...
你们有什么想法可以实现吗?我也可以创建一个 .bat 文件来做这些事情,但我不太确定如何:)
谢谢
【问题讨论】:
检查this 谢谢,但不幸的是,这不适用于我的情况。我只有一个项目,有一个 web.xml,我想将此文件用于生成的所有文件。基本上我想做的是生成war文件的部分循环创建多个文件。 我强烈建议构建一个多模块的maven项目,其中每个war都是单个模块的输出。这是生成多个战争文件的答案。对于重命名,我认为创建配置文件是最好的解决方案,您可以参考this希望对您有所帮助 谢谢,确实拥有一个多模块项目会是更好的解决方案,但这意味着在我的情况下我会重复代码。我在想也许我可以做一个带有 for 循环的 .bat 文件,在其中我可以有类似“mvn clean install”之类的东西,但是这里出现了重命名问题,因为每次创建文件时它都会具有相同的名称跨度> 这里的基本问题是:为什么需要多个war文件?它们应该包含不同的文件吗?还是什么? 【参考方案1】:不完全确定这是否有效,但您可能可以尝试以下方法:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>test_1</id>
<goals>
<goal>war</goal>
<goals>
<configuration>
<warName>test_1.war</warName>
</configuration>
</execution>
<execution>
<id>test_2</id>
<goals>
<goal>war</goal>
<goals>
<configuration>
<warName>test_2.war</warName>
</configuration>
</execution>
<executions>
</plugin>
【讨论】:
【参考方案2】:感谢您的所有回答。我设法使用如下所示的 .bat 文件创建了这些文件:
call mvn -DfinalName=test_1 package
call mvn -DfinalName=test_2 package
call mvn -DfinalName=test_3 package
call mvn -DfinalName=test_4 package
在 pom.xml 中我添加了一个属性 <finalName>
:
<properties> <finalName>$project.artifactId-$project.version</finalName> </properties>
在构建部分我添加了这个:
<build> <finalName>$finalName</finalName> ... </build>
.
【讨论】:
以上是关于创建多个war文件并用Maven重命名它们的主要内容,如果未能解决你的问题,请参考以下文章