Maven プロジェクトをビルドし、結果のアーティファクトを Nexus およびテスト用のリモート Weblogic インスタンスに再デプロイする Hudson ビルド ジョブがあります。同じアーティファクトを別の Weblogic インスタンスにデプロイする別のジョブを作成しようとしていますが、プロジェクトを再コンパイルして新しい WAR を作成する必要はありません。ここでの理論的根拠は、ビットが既に存在し、開発環境でテストされており、それが合格した場合にのみ開発統合環境に昇格できるということです。これは可能ですか?
1) 既存の POM を使用し、コマンド ラインで mvn deploy wls:undeploy wls:deploy を宣言する - これにより、プロジェクト WAR が新しい環境にデプロイされますが、プロジェクトが最初からビルドされます。deploy ゴールは、Nexus で以前にビルドされたプロジェクト アーティファクト (スナップショット) も置き換えます。これは理にかなっています。
2) 以前のビルドのアーティファクトが依存関係にあり、wls-maven-plugin が宣言された唯一のプラグインである新しい POM の作成を試みました。ここで mvn wls:deploy を実行しても、さまざまな理由で失敗します。
私が見逃している簡潔な方法でそのような展開を実行する方法はありますか? これに間違ったメカニズム (Maven) を使用していますか? Ant のような手続きベースの言語を使用する必要がありますか? どんな洞察も大歓迎です。(さらに詳しい情報が必要な場合は、お知らせください。)
編集: ビルドされたアーティファクトがターゲット ディレクトリでローカルに利用可能であり、その場所がプロパティ ファイルによって参照されている場合、再デプロイは成功します。Oracle の Web サイトのドキュメントによると、そのパラメーターはローカル座標または GAV 座標のいずれかです。GAV 座標を使用してアーティファクトを Nexus から直接プルし、それをリモートの Weblogic にプッシュすると、次の Maven エラーが発生します。
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building MyWebApp 0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- wls-maven-plugin:12.1.1.0:redeploy (default-cli) @ MyWebApp-deploy-DIT ---
[INFO] ++====================================================================++
[INFO] ++ wls-maven-plugin: redeploy ++
[INFO] ++====================================================================++
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.480s
[INFO] Finished at: Wed Mar 20 10:19:22 EDT 2013
[INFO] Final Memory: 4M/122M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.oracle.weblogic:wls-maven-plugin:12.1.1.0:redeploy (default-cli) on project MyWebApp-deploy-DIT: Invalid file. Please provide an existing fully qualified path of the file. -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
完全を期すために、オプション#2を実行するために使用しているPOMも投稿しています。
<?xml version="1.0" encoding="UTF-8"?>
<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>
<name>MyWebApp</name>
<parent>
<groupId>org.myorg.maven</groupId>
<artifactId>MyOrg-Parent</artifactId>
<version>2.0</version>
</parent>
<groupId>org.myorg.apps</groupId>
<artifactId>MyWebApp-deploy-DIT</artifactId>
<version>0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<drools.version>5.4.0.Final</drools.version>
<REGION>DEV</REGION>
<MyWebApp_LOGDIR>.</MyWebApp_LOGDIR>
<webapp.jsp.dir>src/main/webapp/WEB-INF/jsp</webapp.jsp.dir>
<buildMsgJsp>buildMsg.jsp</buildMsgJsp>
<DEPLOYMENT_NAME>MyWebApp</DEPLOYMENT_NAME>
<MIDDLEWARE_HOME>/ci/oracle/middleware</MIDDLEWARE_HOME>
<WLS_ADMIN_HOST>lncibd008</WLS_ADMIN_HOST>
<WLS_PORT>7001</WLS_PORT>
<STAGE>true</STAGE>
<!--<SOURCE>${project.build.directory}/MyWebApp-3.7-SNAPSHOT.war</SOURCE>-->
<SOURCE>org.myorg.apps:MyWebApp:war:3.7-SNAPSHOT</SOURCE>
<WLS_TARGETS>server1</WLS_TARGETS>
</properties>
<dependencies>
<dependency>
<groupId>org.myorg.apps</groupId>
<artifactId>MyWebApp</artifactId>
<version>3.7-SNAPSHOT</version>
<type>war</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.oracle.weblogic</groupId>
<artifactId>wls-maven-plugin</artifactId>
<version>12.1.1.0</version>
<configuration>
<weblogicHome>wlserver_12.1</weblogicHome>
<upload>true</upload>
<remote>true</remote>
<stage>${STAGE}</stage>
<verbose>true</verbose>
<userConfigFile>wlsconfig/${WLS_ADMIN_HOST}${WLS_PORT}.config</userConfigFile>
<userKeyFile>wlsconfig/${WLS_ADMIN_HOST}${WLS_PORT}.key</userKeyFile>
<adminurl>http://${WLS_ADMIN_HOST}:${WLS_PORT}</adminurl>
<targets>${WLS_TARGETS}</targets>
<source>${SOURCE}</source>-->
<name>${DEPLOYMENT_NAME}</name>
<middlewareHome>C:\Oracle\Middleware</middlewareHome>
</configuration>
</plugin>
</plugins>
</build>
</project>
ご覧のとおり、コメントアウトされた GAV があります。ローカルは成功しますが、GAV は上記のエラーで失敗します。