私は ant+ivy+nexus を使用して Java OSGi プロジェクトをビルドおよび公開しています (OSGi に慣れていない場合は、古き良き jar ファイルを使用してください)。新しい技術に取り組むときの通常の心とろける期間の後、私はほとんど機能するシステムを手に入れました。しかし、今ではアーティファクトのバリエーションには、スナップショット/リリースとメイン/テストの 2 つの側面があります。
main/test ディメンションは、それ自体が物語っています。スナップショット/リリースは、maven に適した方法で nexus に公開するために不可欠です。(オープンソースの OSGi ランタイムとの統合に非常に役立ちます)。したがって、プロジェクトごとに次のアーティファクトがあり、多くのプロジェクトがあります。
- project-revision.xml (bp)
- project-test-revision.xml (b)
- project-revision-SNAPSHOT.xml (bp)
- project-test-revision-SNAPSHOT.xml (b)
b = ビルドに成功 p = 公開に成功 (まだテスト用のものが正しく公開されていません)
ビルド スクリプトのあらゆる場所でコードを複製せずにここまでたどり着くまでにはしばらく時間がかかりましたが、なんとかやり遂げることができました... 1 つの大きな注意点があります。SNAPSHOT ブランチでは、すべてのリビジョンに「-SNAPSHOT」を追加します。ant ではプログラムでこれを実現できますが、ivy では複製された ivy.xml を使用しています。ivy-SNAPSHOT.xml。これは持っています
<info ... revision="x.x-SNAPSHOT">
-SNAPSHOT に注意してください。これがなければ、私は私のものを手に入れることができませんでした
<ivy:deliver>
<ivy:resolve>
<ivy:publish>
アーティファクトと maven pom を正しく公開するための一連のコマンド。(この Maven を使いやすくする必要があることを思い出してください...実際に Maven を使用して精神を構築することになったら、私は気が遠くなるでしょう!)
今、テスト/メイン ディメンションの導入に行き詰まっています。私は理想的には出版を目指しています
project-test-revision(-SNAPSHOT).jar
(オプションのスナップショットに注意してください)。私は本当に指定してこれをしたくありません
<info ... module="project-test" ... >
<info ... module="project" ... >
さらに別のivyファイルとは対照的です。私がこの道を進んだ場合 (私はすでに始めたように)、単に大量の ivy-Option1-Option2...-OptionN.xml ファイルで終わるだけです。新しい 2 つの値のバリエーションごとに、ビルド ファイルと Ivy ファイルの数が 2 倍になります。それはがらくたです。もっと良い方法があるはずです。私はそれを見つけることができません。
1 つの ivy ファイルから名前が修飾された Ivy パブリッシング アーティファクトを正常に取得できた場合は、これを実現するための構成スニペットを投稿していただけませんか? 非常に便利です。(maven は設定を認識しないので、バリエーションをファイル名と pom に入れる必要があることを忘れないでください)。
どうもありがとう
アラステア