2017-06-01 8 views
0

私は、プロジェクトのクリーンインストールを確実に行う必要があります。 「mvn clean deploy」ではなく、配置(上書き)する前にOSBから既存のプロジェクトを削除することを意味します。 OSBでプロジェクトを上書きすると、すべてのリソースが更新されることを確認できません。プロジェクトのいくつかのリソースが上書きされ、一部のリソースが上書きされているケースが数多くありました。それはまったく予測できない動作です。 問題は、展開する前にプロジェクトを強制的に更新するいくつかのmaven(mavenサービスバスプラグインまたはmaven weblogicのような他のもの)のタスクまたはパラメータですか?mavenを使用してOracleサービスバスプロジェクトをOSBにデプロイすることは "クリーン"できますか?

答えて

0

まあ、解決策が見つかりました。それは簡単ではありません。実際には私はそれが好きではありませんが、それは動作します。

私が発見した唯一の解決策は、WLSTを使用してOSBコンソールからサービス(OSB用語ではプロジェクト)を削除することです。 Martien van den Akkerのブログで見つかった作業スクリプト:http://blog.darwin-it.nl/2014/03/osb-remove-artefacts-with-wlst.html

スクリプトはすぐに使用できます。しかし、これはOSB 11のみで動作し、OSB 12では動作しません。http://soamagic.blogspot.com/2016/05/osb-12c-java.html

私のCIサーバー(Hudsonベース)では、wlstを実行するshスクリプトを起動するMavenビルドステップを追加しました。 (実際には、weblogic adminのユーザ名、パスワード、URLなど - 削除するプロジェクト名は4つ以上のパラメータがあります)。このビルドステップは、すべてのサービスを展開する前に実行されます。 これにより、サービスの最新バージョンがOSBサーバーに展開されることが保証されます。

編集:投稿する価値があるかどうかわかりませんが、誰かが自分のコードで役に立つものを見つけられることを願っています。だからここにある:

  1. Mavenのビルド:

    <profile> <id>undeployService</id> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.5.0</version> <executions> <execution> <id>wlst-undeploy-service</id> <phase>process-resources</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable> ${project.basedir}/../conf/WLST/undeployProject.sh </executable> <arguments> <argument> ${weblogic.username} </argument> <argument> ${weblogic.password} </argument> <argument> ${weblogic.url} </argument> <argument> ${project.artifactId} </argument> </arguments> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile>

  2. undeployProject.shスクリプト:

. ${MW_HOME}/osb/tools/configjar/setenv.sh ${MW_HOME}/osb/tools/configjar/wlst.sh ../conf/WLST/undeployProject.py $*

関連する問題