2017-08-26 3 views
0

私は、単純な依存性を含んでのpom.xmlでのプロジェクトがあります。ローカルリポジトリの依存関係がMavenに含まれないのはなぜですか?

<dependency> 
    <groupId>com.somegroupid</groupId> 
    <artifactId>LocalProject</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 

を私はローカルでプロジェクトを実行すると、すべてが完璧に動作します。私はgithubのにプロジェクトをプッシュすると、ジェンキンスさんは、自動的にそれを構築しようとしたときしかし、私はこのエラーを取得する:

[WARNING] The POM for com.somegroupid:LocalProject:jar:1.0-SNAPSHOT is missing, no dependency information available 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.563 s 
[INFO] Finished at: 2017-08-26T13:19:47+02:00 
[INFO] Final Memory: 9M/31M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal on project MainProject: Could not resolve dependencies for project com.somegroupid:MainProject:war:1.0-SNAPSHOT: Could not find artifact com.somegroupid:LocalProject:jar:1.0-SNAPSHOT -> [Help 1] 

私の推測では、プロジェクトのjarファイルは、ビルドに含まれないとジェンキンスはそれをそれを構築しようとしたときということです中央のリポジトリ内でそれを探し、効果的に見つけられません。依存関係は私のローカルリポジトリでのみ利用可能であるため、期待通りです。

ビルド時に依存関係が含まれるようにするにはどうすればよいですか?

答えて

1

when jenkins tries to build it looks for it in the central repository and effectively doesn't find it. (As is expected because the dependency is only available in my local repository)

あなたは私の知る限り、あなたがこの問題を解決するには、2つの方法があります知っている

正しいです。

1 - プロ溶液(良好) artifactory(私はこれを使用)またはネクサスと内部Mavenのリポジトリを作成し、このレポにジャー、モジュールおよび依存関係を展開します。インターネットからの依存関係をダウンロードするようにリポジトリサーバを設定します。 https://repo.maven.apache.org/maven2/などの代わりにローカルMavenリポジトリサーバーを使用するようにJenkinsでmavenを設定します。

これは素晴らしい開発者チームと協力して、人々の使用方法とバージョンを制御できる場合に適しています。

2 - 回避策

はちょうどあなたのcom.somegroupidを置く:LocalProject:ジェンキンスサーバーのディレクトリ.m2 /リポジトリ内のjarファイル。

【注意】はちょうどあなたが急いでいるし、いくつかのファイルがある場合

+0

ローカル依存関係として、このソリューションを使用する最初の解決策は、私のローカルコンピュータ上のローカルのMavenリポジトリにアクセスするために私のリモートサーバーが必要? Jenkinsがビルド中にコンピュータの電源が切れたらどうなりますか?ファイアウォールなどはどうですか?または私はこれを間違った方法で見ていますか? – Titulum

+0

2番目の解決策はおそらくうまくいくはずですが、私はあなたの答えを受け入れましたが、私のプロジェクトで必要なクラスを別々のパッケージに入れて修正したので、今は適用できません。 – Titulum

関連する問題