将Java EE Web App部署到Wildfly / JBoss EAP

时间:2018-03-29 12:17:35

标签: java jenkins deployment jboss wildfly

更多的"什么是最佳做法?"有点问题。

我们目前有许多Java EE Web应用程序通过Web界面手动部署到JBoss EAP 7.0应用程序服务器。我正在考虑自动化这些,并有一个简单的Jenkins构建,它将使用Jenkins推广的构建插件和Wildfly maven插件部署到我们的UAT环境。

虽然这没关系,但我们显然已经定义了#34; build"和"部署"我想要改进的设置。然而,我的问题是当我们运行" wildfly:deploy"目标,它运行构建的maven安装部分!

本质上,部署到不同的环境会重建应用程序,因此我们无法保证与已测试的构建进行逐字节奇偶校验。

是否有通过使用Jenkins / Maven到JBoss EAP / Wildfly上的环境部署构建的最终版本的最佳实践方法?

全部谢谢!

2 个答案:

答案 0 :(得分:2)

我不确定为什么需要使用Maven进行部署。为什么不使用jboss-cli工具?有了它,你可以做类似的事情:

jboss-cli.sh --connect --command="deploy target/your.war --force"

这是" localhost"版本并假设您没有为Wildfly创建任何用户,但它可以让您了解自己可以做些什么。 CLI Docsdeploy 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

手动调用部署

玩得开心。