5

スナップショットの依存関係の変更をチェックし、必要に応じてビルドをトリガーする CruiseControl プラグインがあります。これには、Maven エンベダーを使用して依存関係をダウンロードし、ローカル リポジトリ内のスナップショット ファイルのタイムスタンプを確認することが含まれます。これは問題なく動作しますが、一部のタイムスタンプを確認するためにすべての親と依存関係をダウンロードする必要があります。

私は分散 CI システム (Bamboo/Buildforge など) で作業しており、ビルドが必要かどうかを確認するために依存関係階層全体をダウンロードすることを避けたいと考えています。リモート リポジトリの maven-metadata.xml を確認することで、スナップショット依存関係のビルド日を特定できます。

このプロセスを合理化するためのプラグインやツールはありますか?

4

2 に答える 2

2

ビルドプロセスとしてMavenを使用していると仮定すると、プラグインでチェックと条件付きビルドを実行する必要があります。

私はあなたが望むことを正確に実行するMavenプラグインを知りません。ただし、同じ効果を得るために、いくつかのプラグインをまとめることができるはずです。

「wget」でexecプラグインを使用して、maven-metadata.xmlをフェッチします。次に、xsltプラグインを使用して、結果のXMLを、更新が行われたかどうかを示すブール値に変換します。// metadata / versioning / lastUpdatedノードにXPathして、現在の日付と時刻と比較する必要があります。最後に、結果の変換されたXMLを調べて、ビルドを続行する必要があるかどうかを判断する必要があります。

これらのプラグインはhttp://mojo.codehaus.org/plugins.htmlで見つけてください

于 2009-08-05T16:27:53.157 に答える
1

Mercuryは、私が探していたより高いレベルの API を提供しているようです。

Mercury は、OSGi などの AV リポジトリを含む、GAV ベースのリポジトリにアクセスするための実装中立的な方法を提供します。OSGi アクセスはまだ実装されていません。アクセスとは、アーティファクトとメタデータをリポジトリから読み取り、アーティファクトをリポジトリに書き込むことを意味し、メタデータは書き込みによって更新されます。

すべての呼び出しは、要求のコレクションを入力として受け入れ、getResults を非表示にするオブジェクトを返します。通常、これは map< queryElement, Collection > 応答です。応答オブジェクトには、便利なメソッド hasExceptions()、hasResults()、getExceptions()、getResults() があります。

重要なビルディング ブロックの 1 つは、Artifact データの階層です。

  • ArtifactCoordinates - まさに 3 コンポーネント GAV
    • ArtifactBasicMetadata - 座標、型/分類子、ハッシュ計算などの便利なメソッド
  • ArtifactMetadataは、 ArtifactBasicMetadataとしてキャプチャされた依存オブジェクトのリストを追加します
  • DefaultArtifactはArtifactインターフェイスを実装し、実際のバイナリを指す pomBlob (byte[]) とファイルを追加します
于 2009-09-12T08:58:30.733 に答える