WildFly Maven Plugin 自動部署

利用 Maven Plugin 部署應用程式到 WildFly

WildFly 原名為 JBoss Application Server (JBoss AS),是一個 Java 的應用程式伺服器(中介軟體)。Red Hat 公司收購 JBoss 後,將其改名為 WildFly。而 JBoss Enterprise Application Platform (JBoss EAP) 是基於 WildFly 開發的企業級商用版本,因此 WildFly Maven Plugin 也適用於 JBoss EAP。本篇將介紹如何透過 WildFly Maven Plugin 部署應用程式到 JBoss EAP。


設定 pom.xml 檔

在 Maven 專案的 pom.xml 檔添加以下設定:

<build>
  <plugins>
    ...
    <plugin>
      <groupId>org.wildfly.plugins</groupId>
      <artifactId>wildfly-maven-plugin</artifactId>
      <version>3.0.2.Final</version>
      <executions>
        <execution>
          <phase>install</phase>
          <goals>
            <goal>deploy</goal>
          </goals>
        </execution>
      </executions>
      <configuration>
        <filename>demo-0.0.1-SNAPSHOT.war</filename>
        <hostname>127.0.0.1</hostname>
        <port>9990</port>
        <username>jboss</username>
        <password>P@ssw0rd</password>
        <force>true</force>
      </configuration>
    </plugin>
  </plugins>
</build>

Note:

  • <execution>:為將 <goal> 標籤的 deploy 綁定到 Maven 的 install 階段,因此只需要執行 mvn install 即可,指令可不加 wildfly:deploy
  • <filename>:為欲部署的 war 檔名稱。
  • <hostname>:為伺服器的 IP 位址。
  • <port>:為 Web Console 的 port,預設為 9990。
  • <username>:為 Web Console 的帳號。
  • <password>:為 Web Console 的密碼。
  • <force>:若為 true,則已部署同名的 war 檔會強制覆蓋。

執行部署

mvn clean install wildfly:deploy

mvn clean install

另外,也可將 <configuration> 標籤的設定加在指令的參數,即可不寫 <configuration> 標籤,如下:

<configuration>
  <filename>demo-0.0.1-SNAPSHOT.war</filename>
  <hostname>127.0.0.1</hostname>
  <port>9990</port>
  <username>jboss</username>
  <password>P@ssw0rd</password>
  <force>true</force>
</configuration>

不寫以上設定,將設定寫在指令,如下:

mvn clean install wildfly:deploy
  -Dwildfly.deployment.name=demo-0.0.1-SNAPSHOT.war
  -Dwildfly.hostname=127.0.0.1
  -Dwildfly.port=9990
  -Dwildfly.username=jboss
  -Dwildfly.password=P@ssw0rd
  -Ddeploy.force=true


執行去部署

執行 wildfly:undeploy 即可去部署,如下:

mvn wildfly:undeploy


參考資料

  1. WildFly Maven Plugin (wildfly-maven-plugin)
  2. 如何將 Spring Boot 應用程式部署到 WildFly 應用程式伺服器
  3. Deploying applications to WildFly Server using WildFly Maven plugin