2

私は CM であり、Continuous ビルド プロセスの責任者であり、開発者がビルドを正しく定義して使用するのを支援しています。ant私は、開発者がソース管理システムからモジュールをダウンロードし、 ormavenを入力するだけですべてが機能するように設定しようとしています。

Ant プロジェクトでは、必要なサード パーティの jar ファイルを含むディレクトリを使用するivyか、ディレクトリを持っています。libこれは、すべての依存関係を明確に定義するのに役立ち、開発者がシステム上でモジュールをビルドするのを容易にします。はい、適切な JDK バージョンと、適切な Ant バージョンへのある程度の依存関係がありますが、これらでさえ少し柔軟です。Ecipse と Jenkins/Hudson のほかに、使用したい JDK と Ant の正確なバージョンを定義できます。

問題は、Weblogic 10.3 (別名 11g) に依存するこの 1 つのプロジェクトです。Weblogic 10 より前は、weblogic.jar ファイルとおそらく 1 つまたは 2 つの他の jar ファイルだけを使用することでほとんど問題を解決できました。Weblogic 10 から、jar は「モジュール化」されました。

weblogic.jarビルドを行うときは、クラスパスに含めるだけです。ただし、weblogic.jarそのMANIFEST.MFファイルには..\..\..\modules\featuresディレクトリへの参照が含まれています (これは実際には Weblogic 10.3 を含む親ディレクトリです!)。ここには、クラスパスを含まない jar がありますが、それ自体には、MANIFEST.MF他の jar を指すクラスパスが埋め込まれています。これらは、他の jar を参照できます。

次のいずれかの選択肢があると思います。

  1. 各モジュールのソース リポジトリに 10,900 ファイル、700Mb の Weblogic 全体を含めます。
  2. Maven または Ivy を単一の tarball として使用して、どうにかして Weblogic をダウンロードします。ファイルを解凍してから、ビルドを実行します。
  3. 開発者に、Weblogic 10.3 をダウンロードしてから、Weblogic 10.3 をインストールした場所を指すようにビルド プロセスを変更する必要があることを伝えます。

これらのオプションのどれも、今のところ本当に魅力的ではありません。


アップデート

他の人が指摘したように、私はさまざまな jar を見つけようとすることができました。Weblogic 9.x 以前のバージョンでまさにそれを行いました。たとえば、単純なシェル スクリプトは次のとおりです。

find $WEBLOGIC_HOME -name "*.jar" | while read jar
do
   echo "JAR NAME = jar"
   jar tvf $jar
done | less

端末にすべての Weblogic JAR のコンテンツを表示します。javax.servlet.ServletExceptionクラスが欠落しているビルドを見つけた場合は、 を検索してjavax\servlet\ServletException.classから、検索に戻ってJAR NAME =jar の名前を見つけることができます。

しかし、Weblogic 10 では、 に依存していることがわかり、自分のディレクトリにもないjavax.servlet.ServletExceptionまでさかのぼって調べました。これは、 へのクラスパスが含まれているためです。また、クラスは含まれていません。代わりに、クラスパスに別の jar への参照が含まれており、.C:\bea\modules\javax.servlet_1.0.0.0.0.jar$WEBLOGIC_HOMEC:\bea\wlserver_10.3\server\lib\weblogic.jar..\..\..\modules\features\somejar.jarsomejar.jarjavax.servlet_1.0.0.0.0.jar

そのため、さらに 4 つの jar を追加する必要があり、そのうちの 1 つにはクラスが含まれていません。Weblogic の構造をエミュレートする場合は、libディレクトリに次のファイルが必要です。

  • weblogic.lib\wlserver_10.3\server\lib\weblogic.jar
  • weblogic.lib\modules\features\somejar.jar
  • weblogic.lib\modules\someOtherJar.jar
  • weblogic.lib\modules\javax.servlet_1.0.0.0.0.jar

さて、それは解決するのに約2時間しかかかりませんでした. 1 つの依存関係の問題が解決し、あと 43 の問題があります。

ご覧のとおり、これには数日、場合によっては数週間かかる場合があり、最終的には...ええと...最小限のWeblogic 10 モジュールに数十個の jar が作成されます。最終的に、この最小モジュールはそれほど小さくはないかもしれません。

クラスパス com.bea.weblogic.foo.bar.barfoo が必要なときにすぐに確認できるように、これらの依存関係がどこに存在するか、または依存関係ツリーを構築する方法をすばやく判断できるドキュメントを知っている人はいますか?これらの7または8個の瓶が必要ですか?

4

2 に答える 2

1

ビルドするのに 700MB のパッケージ全体は必要ないと思います。したがって、ビルドとテスト用の最小限の jar セットを記述した独自の「weblogic-ivy」ファイルを作成することができます (はい、これにはいくつかの作業があります)。そのファイルを会社のリポジトリに公開し、依存関係の conf で使用します。開発者は、他の app-server-client パッケージよりも大きくない最小限の conf で作業できます。

于 2011-03-08T20:11:30.957 に答える
1

私はあきらめた。私は単にWeblogic 10をインストールし、設定されているものをチェックインしましbuild.xml$WEBLOGIC_HOME

于 2011-06-22T18:57:58.613 に答える