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