これは奇妙な質問かもしれませんが、これは私に起こっています。 Mavenプロジェクトを構築するときにJenkinsが使用するリポジトリの場所を教えてもらえますか? Jenkinsの設定中にDefault (~/.m2/repository)
オプションを選択しましたが、動作が少し異なるようです。このmyown.jarはローカルリポジトリ、つまり/home/username/.m2
、myown.jarが見つからないというエラーを示しています。したがって、このmyown
プロジェクトのジョブをビルドし、ビルドする必要があります。その後、エラーが解決されます。
これだけでなく、Jenkinsスクリプトをスタートアップに入れると、つまり/usr/bin/Java -jar <warpath>.war
、ビルド中にプロジェクトのすべての依存関係を再度ダウンロードしましたが、スクリプトを起動する前に構成済みプロジェクトを5回ビルドしました。奇妙な振る舞いではないでしょうか? Jenkinsはどのリポジトリの場所を使用しますか?または、私が見逃しているものがありますか?
実際には、個々のMavenプロジェクトの構成に依存します。デフォルトでは、Jenkinsはローカルリポジトリを使用しますJENKINS_HOME_DIR/.m2/repository
[自動インストール]チェックボックスをオンにしてMavenをインストールする場合、そうでない場合は、ローカルの/home/username/.m2/repositoryを使用します。
ただし、〜/ .m2/settings.xmlのsettings.xmlファイルを設定することにより、このデフォルトの場所を変更できます
OR
グローバルに使用するには、jenkins_home_dir/confから変更できます
たとえば、[自動的にインストールする]チェックボックスをオンにしてmavenをインストールする場合
Step1.
jenkinsホームディレクトリで特定のプロジェクトのMavenインストールを選択します
$ cd Jenkins_home_dir/tools/hudson.tasks.Maven_MavenInstallation/
Step 2.
settings.xmlのlocalRepositoryを変更します
Settings.xmlの階層はuser .m2
ディレクトリ。それが見つからない場合は、{maven home}/conf/settings.xml
。
Windowsでは、Windowsサービスとしてインストールして実行すると、デフォルトで以下になります。
C:\Windows\SysWOW64\config\systemprofile\.m2\repository
C:\Windows\System32\config\systemprofile\.m2\repository
UNIXシステムでは、find
ツールを使用します。
[root@ip-172-23-38-167 ~]# Sudo find / -name ".m2"
/root/.m2
/var/lib/jenkins/.m2
その下/var/lib/jenkins
rhelで、(JENKINS_HOME_DIR
察するに /var/lib/jenkins
)
[root@ip-172-23-38-167 ~]# ll /var/lib/jenkins/.m2/repository/
total 8
drwxr-xr-x. 4 jenkins jenkins 35 Apr 25 00:12 asm
drwxr-xr-x. 3 jenkins jenkins 38 Apr 23 20:18 backport-util-concurrent
drwxr-xr-x. 3 jenkins jenkins 17 Apr 25 00:12 ch
drwxr-xr-x. 3 jenkins jenkins 25 Apr 23 20:17 classworlds
drwxr-xr-x. 23 jenkins jenkins 4096 Apr 25 03:49 com
drwxr-xr-x. 3 jenkins jenkins 25 Apr 23 20:17 commons-cli
drwxr-xr-x. 3 jenkins jenkins 27 Apr 23 20:17 commons-codec
drwxr-xr-x. 3 jenkins jenkins 26 Apr 23 20:17 commons-dbcp
drwxr-xr-x. 3 jenkins jenkins 24 Apr 23 20:18 commons-io
drwxr-xr-x. 3 jenkins jenkins 26 Apr 23 20:18 commons-lang
drwxr-xr-x. 4 jenkins jenkins 56 Apr 24 22:45 commons-logging
drwxr-xr-x. 3 jenkins jenkins 26 Apr 23 20:17 commons-pool
drwxr-xr-x. 3 jenkins jenkins 27 Apr 25 00:11 eventstream
drwxr-xr-x. 6 jenkins jenkins 63 Apr 25 00:29 io
drwxr-xr-x. 6 jenkins jenkins 69 Apr 25 00:11 javax
drwxr-xr-x. 3 jenkins jenkins 19 Apr 24 23:09 jline
drwxr-xr-x. 3 jenkins jenkins 23 Apr 24 23:09 joda-time
drwxr-xr-x. 3 jenkins jenkins 19 Apr 23 20:17 junit
drwxr-xr-x. 3 jenkins jenkins 19 Apr 24 22:45 log4j
drwxr-xr-x. 9 jenkins jenkins 104 Apr 25 00:11 net
drwxr-xr-x. 3 jenkins jenkins 17 Apr 25 00:12 nz
drwxr-xr-x. 3 jenkins jenkins 18 Apr 25 00:12 ognl
drwxr-xr-x. 34 jenkins jenkins 4096 Apr 25 00:12 org
drwxr-xr-x. 3 jenkins jenkins 20 Apr 24 23:09 software
drwxr-xr-x. 3 jenkins jenkins 21 Apr 25 01:47 xmlpull
drwxr-xr-x. 3 jenkins jenkins 22 Apr 25 01:47 xpp3
構成ファイルプロバイダープラグイン を使用してMaven設定を管理することをお勧めします。
このプラグインにより、Jenkins UIを介して構成ファイルを管理し、Mavenプロジェクトのビルドごとに簡単に選択できます。
/home/username/.m2/settings.xml
で設定したものを使用する必要があります。jenkinsサーバーを効果的に実行するのはsernameであることを忘れないでください。ただし、現在のMavenバージョンの/ confディレクトリにsettings.xmlがある場合、/ homeにあるものと比較して優先されます。
Settings.xmlを見つけた(または作成した)後、ローカルリポジトリが必要な場所を指すようにします。
デフォルトでは、JenkinsはJenkinsの実行に使用されるユーザーアカウントでローカルリポジトリ〜/ .m2/repositoryを使用します。
ビルドにプライベートリポジトリを使用するように構成できますが、構成していないように聞こえます。
Jenkinsスクリプトをスタートアップ(つまり/ usr/bin/Java -jar .war)に配置すると、ビルド中にプロジェクトのすべての依存関係が再度ダウンロードされましたが、スクリプトを起動する前に構成済みプロジェクトを5回ビルドしました
これから、あたかも起動スクリプトが別のユーザーとして実行されているように聞こえますか?おそらくroot
ユーザーですか?
Jenkinsをルートとして実行すると、別のローカルリポジトリ、つまり/root/.m2/repository
。 Mavenリポジトリが存在するかどうかを確認し、存在する場合は、Jenkinsがrootとして実行されないようにします。
Ubuntuでは、/ var/lib/jenkins/.m2の下にリポジトリの場所が見つかりました。そして、その場所を削除して、代わりに既存のmavenリポジトリへのリンクを作成しました...