我已经在这个论坛上阅读了很多答案,所以希望我能问一些问题。 最近我们迁移到 Tomcat 7,通常的过程是从 Nexus 存储库中获取一个 war 文件,将其粘贴到 tomcat webapps 目录中并启动服务器并使用它。 但是由于 Nexus 中的 war 文件 Artifact 名称是 my-app-war-1.0.war tomcat 中的上下文路径不是预期的。我知道这可以通过 context.xml 配置,但我想知道是否有办法将 ## 添加到部署在 Nexus 中的 Artifact 名称。
我尝试更改@{project.build.finalName} 但它只更改目标目录中的 Artifact 名称,maven 部署插件仍然使用 artifactId,即“my-app-war”。所以 Nexus 中的 Artifact 最终变成了 'my-app-war-1.0.war' 因为 maven 中的 artifactId 有一个非常严格的结构并且 ## 在那里是不允许的 我想知道将 ## 添加到 Artifact 名称的正确方法是什么,因为我们很可能会考虑使用并行部署,所以我正在寻找启用此功能的方法。
我想我可以将同一个 war 文件的两个版本部署到 Nexus,其中一个的名称略有不同(使用##),但这样更容易重命名并节省一些空间。我想知道有没有计划如何在Tomcat中实现并行命名功能时将##添加到应用程序名称中。
最佳答案
您可以使用 <classifier>
maven-war-plugin
的配置.这样你的war
将安装到名称为 ${project.artifactId}-${project.version}-my-app-war.war
的存储库中
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<classifier>##my-app-war</classifier>
</configuration>
</plugin>
关于java - 将## 添加到 maven 3 Artifact 名称以进行 tomcat 7 并行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18892296/