java - 将## 添加到 maven 3 Artifact 名称以进行 tomcat 7 并行部署

标签 java maven tomcat maven-deploy-plugin

我已经在这个论坛上阅读了很多答案,所以希望我能问一些问题。 最近我们迁移到 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/

相关文章:

java - InfoWindow 内的 DataGrid 不显示表数据

java - Android 中 RecyclerView 的 ValueEventListener 与 ChildEventListener

maven - 版本插件不更新子模块,只更新父模块

java - 如何在单线程中仅运行 Maven Surefire 插件中的一个 TestNG 类?

java - 应用程序编程中的线程

java - 如何捕获 ANTLR4 中的无关输入?

java - Mac os 大苏尔 |此环境中不提供编译器。也许您在 JRE 而不是 JDK 上运行?

hibernate - 尝试设置 Tomcat 和 JDBC 连接池 : Communications Link Failure

java - 加载类时出错 [org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor]

java - Apache Tomcat 8 不工作。抛出 HTTP 状态 500 - java.lang.ClassNotFoundException : org. apache.jsp.index_jsp