2017-11-20 14 views
0

私はJenkinsにとって新しく、検索はほとんど進んでいないので、まだ用語がわかりません。Jenkins Pipeline Plugin - 依存関係の取得

私はJenkins Pipelinesでビルドしたいプロジェクトがあります。これはGITリポジトリのJava/mavenプロジェクトです。それは私の2つのJava/mavenプロジェクト、GITリポジトリにも依存しています。

この関係をJenkinsにどのように説明しますか?

簡略化しましょう。 ProjectBに依存するProjectAがあるとします。 ProjectBを構築するためにJenkinsに問題はありません。私が望むならjarファイルをアーカイブすることもできるので、ProjectBのコンパイルされたコピーがJenkinsサーバーに保存されます。

しかし、私は何をすべきかに関係なく、PROJECTAは

[ERROR]でビルドに失敗したプロジェクトPROJECTA上の目標を実行に失敗しました:プロジェクトPROJECTAの依存関係を解決できませんでした:次のアーティファクトを解決できませんでした。ProjectBのを瓶:::jarファイル:0.9:ProjectBのを見つけるに失敗https://repo.maven.apache.org/maven2 0.9がローカルリポジトリにキャッシュされた中央の更新間隔が経過しているか、更新が強制されるまでは、解像度が再試行されることはありません - > [ヘルプ1]

これは非常にシンプルであるために、私は私が必要とするものを理解することができません 検索する。

pipeline { 
agent { 
    docker { 
     image 'maven:3-alpine' 
     args '-v /root/.m2:/root/.m2' 
    } 
} 
stages { 
    stage('Build') { 
     steps { 
      build 'ProjectB' 
      sh 'mvn -B -DskipTests clean package' 
     } 
    } 
} 

}

答えて

1

プロジェクトAは、Mavenのが認識し、それらを使用することができますどこにでも入れていないプロジェクトB.アーカイブジェンキンスにおけるそれらとは無関係です:PROJECTAで

私Jenkinsfileは今、この権利のように見えます依存として。あなたはあなたの仕事を見つける方法を知っている必要があります。いくつかのオプションがあります。

artifactoryのようなリポジトリに公開できます。それから、Mavenはそのリポジトリを見るように設定する必要があります。

Jenkins REST APIを使用することもできます。また、新しいビルドの場合は、Urifだけを検索してワークスペースにダウンロードすることもできます。

アーティファクトのコピープラグインを使用すると、アーティファクトを別のビルドからワークスペースにプルして使用できます。

パイプラインであるため、両方のパイプラインを同じパイプラインの異なるステージに構築できます。

ジョブBでビルドしているライブラリがジョブAにのみ使用されている場合は、すべて同じパイプラインにビルドすることを検討します。しかし、ある種の外部リポジトリを使ってライブラリを公開し、依存関係を見つけるためにそのリポジトリを見るようにmavenを設定するだけでは、時にはさらに意味があります。私は通常そのオプションを使用しますが、より多くのソフトウェアとより多くのセットアップが必要です。

関連する問題