在 Maven 中,如何在版本中命名战争文件与在快照构建中不同
Posted
技术标签:
【中文标题】在 Maven 中,如何在版本中命名战争文件与在快照构建中不同【英文标题】:In maven, how to name war file different in release than in snapshot build 【发布时间】:2014-08-25 17:00:44 【问题描述】:我正在使用 maven-war 插件。我还查看了 maven-versions 插件。在这两种情况下,我都看不到如何为快照构建提供与发布构建不同的名称。
我看过使用配置文件的示例,但文档似乎表明在 pom.xml 中使用配置文件不是一个好主意。
这应该怎么做?
【问题讨论】:
您还会在哪里使用个人资料? 通常会将版本号放在工件名称上,从而区分它。 顺便说一句:配置文件“仅”属于 pom。 为什么要在 SNAPSHOT 或版本之间更改名称?您只能通过<finalName>...</finalName>
在目标文件夹中将其命名为不同的一件事,否则它没有意义。您能否详细说明您的问题是什么或您的目的是什么?
【参考方案1】:
试试下面的
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webXml>src\main\webapp\WEB-INF\web.xml</webXml>
<classifier>$envClassifier</classifier>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>snapshot</id>
<properties>
<envClassifier>snapshot</envClassifier>
</properties>
</profile>
<profile>
<id>release</id>
<properties>
<envClassifier>release</envClassifier>
</properties>
</profile>
</profiles>
现在,运行命令 mvn clean install -Psnapshot
或 mvn clean install -Prelease
以获取所需的工件。希望这会有所帮助
【讨论】:
【参考方案2】:你可以通过warName
属性控制最终的war文件名
【讨论】:
以上是关于在 Maven 中,如何在版本中命名战争文件与在快照构建中不同的主要内容,如果未能解决你的问题,请参考以下文章
Maven:如何获取在 WEB-INF 中复制的资源的战争包?
如何使用 maven 中的 tomcat 插件部署多个战争?
如何让 Maven 将战争常见的所有罐子放在同一个 EAR 到 EAR 根目录中?
带有 <systemPath> 标记的 Maven 项目 POM 中的条目未包含在生成的战争文件 WEB-INF\lib 文件夹中