Wildfly 部署 Maven - 删除版本

Wildfly Deploy Maven - Remove Version

我想使用 wildfly-maven-plugin 将我使用 maven 创建的 war 部署到 wildfly。


war 的最终名称类似于:my-war-1.0.war
war 还包含一个 jboss-web.xml 指定 上下文根 (例如 /my-war)


问题描述

如果我现在将 war 部署到 wildfly,我将获得 "my-war-1.0.war" 部署.
如果我以后想部署一个新版本(例如 war 现在被命名为 my-war-1.1.war)我会遇到冲突因为上下文根是已知的,但部署有一个新名称。


有没有办法使用 wildfly-maven-plugin 来部署 "my-war.war"?

我需要在 Maven 构建中保留原始的最终构建名称,以便进行版本控制和部署到我们的关系。

最简单的解决方案是在 <build/> 配置中使用 <finalName/> 元素。

<build>
    <finalName>${project.artifactId}</finalName>
</build>

您可以使用 maven war 插件重命名最终的 war。例如:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <warName>my-war</warName>
            </configuration>
        </plugin>
    </plugins>
</build>

这将始终在您的 "target" 目录中生成名称为 my-war.war 的 war。

我发现我可以在 maven-wildfly-plugin 的 <configuration/> 中使用参数 <name/><runtimeName/>

这样我就可以指定应该在服务器上调用什么部署,每次只需替换它。重要的是让两个参数以 ".war" 结尾,否则会出现 404 错误。

使用这种方法,我可以保留包含版本 (my-app-1.0.war) 的最终构建结果的原始名称,并将其存档在我们的内部 nexus 存储库中。