更多的"什么是最佳做法?"有点问题。
我们目前有许多Java EE Web应用程序通过Web界面手动部署到JBoss EAP 7.0应用程序服务器。我正在考虑自动化这些,并有一个简单的Jenkins构建,它将使用Jenkins推广的构建插件和Wildfly maven插件部署到我们的UAT环境。
虽然这没关系,但我们显然已经定义了#34; build"和"部署"我想要改进的设置。然而,我的问题是当我们运行" wildfly:deploy"目标,它运行构建的maven安装部分!
本质上,部署到不同的环境会重建应用程序,因此我们无法保证与已测试的构建进行逐字节奇偶校验。
是否有通过使用Jenkins / Maven到JBoss EAP / Wildfly上的环境部署构建的最终版本的最佳实践方法?
全部谢谢!
答案 0 :(得分:2)
我不确定为什么需要使用Maven进行部署。为什么不使用jboss-cli
工具?有了它,你可以做类似的事情:
jboss-cli.sh --connect --command="deploy target/your.war --force"
这是" localhost"版本并假设您没有为Wildfly创建任何用户,但它可以让您了解自己可以做些什么。 CLI Docs以deploy applications的不同方式进入,并在安全方面进行了大量扩展。
Jenkins可以像运行maven构建一样轻松运行shell或批处理脚本,因此在Jenkins中实现这一点并不困难。
答案 1 :(得分:1)
在开发工作流程中,使用maven进行部署是完全可以的,它可以节省时间和上下文切换。
您可以为部署创建专用的maven配置文件 - 这样您就可以灵活地使用maven来构建和部署您想要的,或者使用您的deploy
配置文件运行maven,然后让它构建+部署。
转到Wildfly maven plugin获取更多信息。除了部署之外,它还可以执行许多任务,包括通过jboss cli进行配置任务,但是为了部署,这就是您所需要的:
<profile
<id>jboss-deploy</id>
<build>
<plugins>
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.2.1.Final</version>
</plugin>
</plugins>
</build>
</profile>
现在您可以简单地运行mvn clean package -Pjboss-deploy
并且maven将编译和打包您的应用程序,然后将生成的war或ear部署到正在运行的JBoss / Wildfly实例。您还可以通过mvn wildfly:deploy
玩得开心。