Java Maven:如何为项目重命名war文件?
我有一个项目Java Maven:如何为项目重命名war文件?,java,maven,Java,Maven,我有一个项目bird,在pom.xml <groupId>com.myorg</groupId> <artifactId>bird</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>bird</name> <module
bird
,在pom.xml
<groupId>com.myorg</groupId>
<artifactId>bird</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>bird</name>
<modules>
<module>persistence</module>
<module>business</module>
<module>service</module>
<module>web</module>
</modules>
com.myorg
鸟
1.0-快照
聚甲醛
鸟
坚持不懈
商业
服务
网状物
和web模块
<parent>
<artifactId>bird</artifactId>
<groupId>com.myorg</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>web</artifactId>
<packaging>war</packaging>
鸟
com.myorg
1.0-快照
网状物
战争
web模块创建名为web-1.0-SNAPSHOT.war的war文件
如何使用maven将其重命名为bird.war
?您需要配置war插件:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warName>bird.war</warName>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
...
org.apache.maven.plugins
您可以在生成war的web模块中使用以下内容:
<build>
<finalName>bird</finalName>
. . .
</build>
鸟
. . .
这将导致在使用目标“war:war”时创建一个名为bird.war的文件。如果使用maven project,则可以按照以下步骤修改.war文件名
打开maven项目的pom.xml文件并转到标记
在该标签中,请在此标签之间给出所需的名称:
示例:krutik
部署此.war后,您将能够使用访问url:
如果您想使用斜杠'/'访问url,那么您必须
要指定名称,请如下所示:
e.x.:krutik#maheta
部署此.war后,您将能够使用访问url:
查找pom.xml>项目标记>构建标记
我想要下面的解决方案
<artifactId>bird</artifactId>
<name>bird</name>
<build>
...
<finalName>${project.artifactId}</finalName>
OR
<finalName>${project.name}</finalName>
...
</build>
鸟
鸟
...
${project.artifactId}
或
${project.name}
...
为我工作^^ 这有用吗?当我以“bird.war”的名称编译我的项目时,我得到了一个名为“bird.war.war”的war。@Kalaschni只是使用“bird”,而不是“bird.war”——各种构建插件都会自动添加适当的文件扩展名(war、jar、ear),或者更一般地说,我们可以使用:${project.artifactId}
这个答案解决了我的问题,即子模块的war是用父模块的名称生成的,这是我不想要的。问题是在父POM中设置了元素。删除该元素会生成具有正确子模块名称的war文件。在IDEA 20156 2.4中,我遇到了另一个问题,即每次我尝试在Payara Glassfish 4.1上部署时,它都会生成旧的war文件。当发生这种情况时,打开模块设置->工件->输出布局,并将war文件重命名为您想要的结果。我之所以需要这样做,是因为IDEA中的上下文根会随着war文件名的变化而变化,当您在.properties file.FYI中配置了不同的文件时,这是一个难题:这个答案不再有效(因为maven war plugin版本3.0.0及更高版本)。看见可以工作(至少在3.2.3中的war插件中可以),但它总是附加“-.war”,其中默认为空,可以在内部设置。我使用${project.build.finalName}##${buildDateTimeFile}和BuildHelperMaven插件设置的“buildDateTimeFile”来获得“myApp##2020-05-29_10-24-00.war”。如果一次创建多个war文件(dev/test/prod),这尤其有用。