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

Deploying Java EE Web App to Wildfly/JBoss EAP

更多的是 "what's best practice?" 类问题。

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

虽然这没问题,但我们显然有一个定义的 "build" 和 "deploy" 设置,我想对其进行改进。然而,我的问题是,当我们 运行 "wildfly:deploy" 目标时,它是 运行 构建的 Maven 安装部分!

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

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

谢谢大家!

我不确定您为什么需要使用 Maven 进行部署。为什么不使用 jboss-cli 工具?有了它,您可以执行以下操作:

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

这是 "localhost" 版本,它假设您还没有为 Wildfly 创建任何用户,但它让您了解您可以做什么。 CLI Docs get into different ways to deploy applications 并在安全方面大大扩展。

Jenkins 可以 运行 一个 shell 或批处理脚本,就像它可以 运行 一个 maven 构建一样容易,所以这在 Jenkins 中应该不会太难实现。

在开发工作流程中,使用 maven 进行部署是完全可以的,它可以节省时间和上下文切换。

您可以为部署创建一个专用的 maven 配置文件 - 这样您就可以灵活地使用 maven 来构建和部署任何您想要的,或者 运行 maven 与您的 deploy 配置文件,让它做构建+部署。

前往 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 部署到您的 运行ning JBoss/Wildfly 实例。您还可以通过 mvn wildfly:deploy

手动调用部署

玩得开心。