WebLogic 提供了利用 Maven Plug-In 控制 WebLogic 的各種功能。本篇會介紹在 Windows 的環境下如何利用 Maven Plug-In 執行 WebLogic 應用程式的部署及去部署,可以更快速地更新應用程式。若結合 Jenkins、Azure DevOps Server 等 CI/CD 工具更可以達到自動化部署的功能。
安裝 WebLogic Maven Plug-In
安裝 WebLogic Maven Plug-In 前必須先安裝 Maven,可參考這篇。
Note:
本篇ORACLE_HOME=D:\Oracle\Middleware\Oracle_Home
- 開啟 cmd 到指定目錄
cd <ORACLE_HOME>\oracle_common\plugins\maven\com\oracle\maven\oracle-maven-sync\14.1.1
- 執行
install:install-file
安裝 oracle-maven-sync-14.1.1.jar
mvn install:install-file -DpomFile=oracle-maven-sync-14.1.1.pom -Dfile=oracle-maven-sync-14.1.1.jar
可以看到 oracle-maven-sync-14.1.1-0-0.jar 已安裝到伺服器的 Maven Local Repository,如下圖:
- 執行 push
mvn com.oracle.maven:oracle-maven-sync:push -DoracleHome=D:\Oracle\Middleware\Oracle_Home
執行完成後會從 Maven Central Repository 下載必要的套件到伺服器的 Maven Local Repository,如下圖:
- 複製伺服器的 Maven Local Repository 到客戶端本機
最後將上圖伺服器的 Maven Local Repository 複製到客戶端本機的 Maven Local Repository,以利用客戶端本機的 Maven Plug-In 執行 WebLogic 的部署及去部署。
設定部署應用程式的 pom.xml 檔並執行部署
設定部署應用程式的 pom.xml 檔,檔名命名為 deploy-pom.xml。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>demo</name>
<url>http://maven.apache.org</url>
<build>
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>com.oracle.weblogic</groupId>
<artifactId>weblogic-maven-plugin</artifactId>
<version>14.1.1-0-0</version>
<configuration>
<adminurl>t3://localhost:7001</adminurl>
<user>weblogic</user>
<password>P@ssw0rd</password>
<upload>true</upload>
<remote>false</remote>
<targets>ManagedServer_1</targets>
<verbose>true</verbose>
<source>demo-0.0.1-SNAPSHOT.war</source>
<name>demo-0.0.1-SNAPSHOT</name>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>deploy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Note:
<adminurl>
:為 WebLogic 的 Web Console URL。<user>
:為 Web Console 的帳號。<password>
:為 Web Console 的密碼。<targets>
:為部署至 Managed Server 的名稱。<source>
:為 war 檔的路徑。<execution>
:為將<goal>
標籤的 deploy 綁定到 Maven 的 install 階段,因此只需要執行mvn install
即可。
將 deploy-pom.xml 與欲部署的 war 檔放置於同一層目錄,如下圖:
Note:
若不同層目錄,則必須修改<source>
標籤的路徑。
執行部署:
mvn install -f deploy-pom.xml
完成應用程式的部署。
設定去部署應用程式的 pom.xml 檔並執行去部署
設定去部署應用程式的 pom.xml 檔,檔名命名為 undeploy-pom.xml。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>demo</name>
<url>http://maven.apache.org</url>
<build>
<finalName>demo</finalName>
<plugins>
<plugin>
<groupId>com.oracle.weblogic</groupId>
<artifactId>weblogic-maven-plugin</artifactId>
<version>14.1.1-0-0</version>
<configuration>
<adminurl>t3://localhost:7001</adminurl>
<user>weblogic</user>
<password>P@ssw0rd</password>
<remote>false</remote>
<targets>ManagedServer_1</targets>
<verbose>true</verbose>
<name>demo-0.0.1-SNAPSHOT</name>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>undeploy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Note:
<adminurl>
:為 WebLogic 的 Web Console URL。<user>
:為 Web Console 的帳號。<password>
:為 Web Console 的密碼。<targets>
:為去部署 Managed Server 的名稱。<execution>
:為將<goal>
標籤的 undeploy 綁定到 Maven 的 install 階段,因此只需要執行mvn install
即可。
將 undeploy-pom.xml 放置於同一層目錄,如下圖:
執行去部署:
mvn install -f undeploy-pom.xml
完成應用程式的去部署。