ビルドおよびデプロイメントインフラストラクチャでは、マルチモジュールのMavenプロジェクトを構築するJenkinsの仕事があり、最近はその結果の成果物(オムニバスのタールボールを含む) 。ビルドジョブが実行されたPOM(ビルドジョブはPOMをアーカイブして、ビルドジョブではPATをアーカイブして、tarballを取得することができるように、Nexusから必要なアーティファクトを引き出す別のジョブ(ビルドジョブが成功するとトリガされることもあります)依存関係:コピーゴール)。リリースの場合、これは正常に動作し、ロールバックシナリオが必要な場合は以前のバージョンを配備することもできます。ただし、POMにはアーチファクトが-SNAPSHOT
以上のバージョン識別子は含まれていないため、SNAPSHOTビルドではこれが解消されます。Nexusに保存されている古いスナップショット成果物をプログラムで使用する方法
ビルド出力には、ビルドが完了した後にグレープ可能な情報が含まれているため、これをバージョンとして使用できます。 Mavenのに精通している人は、次のMavenの出力スニペット認識します:
[INFO] Uploading: http://nexus.eng.company.com/nexus/content/repositories/snapshots/com/company/application/application-dist/4.19.3-SNAPSHOT/application-dist-4.19.3-20160819.223606-7-eng.tar.gz
[INFO] Uploaded: http://nexus.eng.company.com/nexus/content/repositories/snapshots/com/company/application/application-dist/4.19.3-SNAPSHOT/application-dist-4.19.3-20160819.223606-7-eng.tar.gz (109687 KB at 413.1 KB/sec)
をしかし、より良い方法はありますか?具体的には、開発者が以前のビルドを展開する(通常は機能ブランチビルドを展開する)ことができますが、現在のところ、日付スタンプ付きのバージョン識別子を取得する方法が見つからない限り、これは不可能です。
これは(http://stackoverflow.com/q/38163124/5606016)助けますか?その答えに応じて、mavenはブランチ名とSNAPSHOTに基づいて自動的に動的に分類器を作成し、事実上SNAPSHOTの成果物をユニークでタイムスタンプのついたユーザーフレンドリーなものにしました –
@ A_Di-Matteo - 一意の識別子を作成するためにbuildhelperプラグインが必要であり、それを分類子に使用しました。 Jenkinsには、各ビルドのブランチを追跡するための情報が格納されています。答えを正式に書いておきたいなら、私はそれを受け入れます。 – OrionRogue