2016-07-26 12 views
0

私は現在、私の最初のプログラミング作業の最初の月にいて、新しくJenkinsをインストールしてビルドプロセスを自動化できるかどうかを確認するのに数日を要しています。私はそれを動作させましたが、パラメータ化されたビルドで特定のJARバージョンを生成するような、Jenkinsでいくつかの作業を手動で行う必要がありますが、これをさらに自動化したいと思っています。事前にお時間をありがとう!Jenkins + Maven + Gitタグ - ビルドタグによる依存関係解決?

私は従属性の解決にMavenを使用するプロジェクトを持っています。私はジェンキンスを使ってビルドプロセスを自動化しています。私はジェンキンスのgit-parameterプラグインを使って、ビルドするプロジェクトのタグ付きバージョンとサブプロジェクトを選択できるようにしました。

プロジェクトはgitの独自のバージョンタグを持つさまざまなサブプロジェクトに依存しており、メインプロジェクトのDev/ProdバージョンはそれぞれのPOMファイルで指定されたこれらのサブプロジェクトの異なるバージョンに依存しています。例について

  • DEV:LIB-2.0.0/LIB-B 1.5.0でのpom.xml依存します。
  • PROD:Pom.xmlはlib-A 1.0.0/lib-B 1.0.0に依存しています。

LIB-A: Gitのタグ:2.0.0、1.5.0、1.0.0

LIB-B: Gitのタグ:1.5.0、1.0.0

すべてのプロジェクトはプライベートgitリポジトリに存在し、Jenkinsでパラメータ化されたジョブとして手動でビルドするタグ付きバージョンを指定して、DEV用の.M2リポジトリにそのバージョンのJARアーティファクトを作成し、PRODで見つけることができます。たとえば、DEVに依存するlib-A 1.5.0が必要な場合、手動でパラメータ1.5.0をクリックしてビルドする必要があります。

しかし、このプロセスを自動化する方法はありますか?そうすれば、依存関係のバージョンを解決し、それらのバージョンをサブプロジェクトの現在作業中のパラメータ化されたビルドに送ることができますか?

私はDEVのビルドを開始し、それができ私のジェンキンス構成でクリーンなマシン上に、なります:

  • gitのクローンDEV、LIB-AとLIB-B。 LIB-AとLIB-B
  • のバージョンの
  • チェックのpom.xmlコンパイルするのに必要な、関連するJARファイルを生成するために、LIB-AとLIB-Bのためのジョブを構築するためにはgit-パラメータ・プラグインのパラメータとしてこれらのバージョンを送ります主なDEVプロジェクトですか?

これはかなり曖昧に思えます。私は実際に問題のトラブルシューティングではなく、これが可能かどうかと、それが呼び出されるべきかどうかを尋ねるだけで、Googleを使ってそれをやり遂げる方法を教えることができます。事前に多くの感謝!

+0

理解できないことがあります.Jenkinsサーバー上のローカルm2リポジトリだけでなく、企業規模のアーティファクト・リポジトリがあります。すべてのリリースバージョンでは、jarファイルはすでにそこにあるはずです。あなたはSNAPSHOTバージョンのいくつかのメカニズムについて話していますか? –

+0

現時点では、アーティファクト・リポジトリはありません。同社は、既存の開発者がこれまで手作業でビルドして展開しているほど小さいため、 pom.xmlからプロパティを取得してパラメータ化されたビルドに渡す方法があると思うので、それを見てください:) –

+0

実際には、Mavenでビルドする場合はリポジトリが必要です。 Jenkins Server上のローカルリポジトリで作業するのは実際には意味がありません。 NexusまたはArtifactoryを見てください。 # –

答えて

0

はい、可能です。簡単に言えば、ジョブがすべて同じマシン上で実行されている限り、ジョブB(スクリプトの1つ)を実行している間は、ジョブAの職場に簡単にアクセスできます。そこにはあらゆる種類のセキュリティや権限の制限はなく、すべてのディレクトリ名は静的です(つまり、謎の一時ディレクトリやそのようなものはありません)。

さらに、親ジョブが正常に実行された後に子プロセスが起動するように、ジョブ間で親子関係を設定することもできます(ジョブ構成でBuild other projectsを探します)。

あなたが非常に賞賛されている自分自身を教えたいと言っているので、私はそれを残します。ここから楽しいことを考えてみるか、もう一度聞いてみてください。

+0

私は、その正確なプレビルドステップを昼食以上に設定しようとしていました!ビルドプロジェクトがMavenテンプレートの場合は、pom.xmlからmavenプロパティにアクセスすることができるので、私が探しているパラメータがパラメータ化されたジョブのgitのタグである$ Versionとして渡されたら、バージョン= $ lib-Aを設定することができます。ここで、pom.xmlのlib-Aプロパティはバージョン番号です。正しいパスにいますか?それは現在働いていないhaha –

関連する問題