问题 Jenkins存储库位置


这可能是一个奇怪的问题,但这发生在我身上。任何人都可以告诉我,当我们构建Maven项目时,Jenkins会使用哪个存储库位置?我已经选择 Default (~/.m2/repository) 配置Jenkins时的选项,但似乎行为有点不同。虽然myown.jar存在于我的本地存储库中,即在 /home/username/.m2,它显示找不到myown.jar的错误。所以我必须为此建立一份工作 myown 项目,构建它然后错误得到解决。

不仅如此,当我把Jenkins脚本放在启动时,即 /usr/bin/java -jar <warpath>.war,它在构建它时再次下载了我的项目的所有依赖项,虽然我已经在启动脚本之前构建了配置项目5次!这不是奇怪的行为吗? Jenkins使用哪个存储库位置?或者有什么我可能会失踪的东西?


10970
2018-02-14 10:50


起源



答案:


实际上它取决于每个maven项目的配置。默认情况下,Jenkins将使用本地存储库 JENKINS_HOME_DIR/.m2/repository 如果你通过勾选自动安装复选框来安装maven,否则它将使用本地/home/username/.m2/repository。

但是,您可以通过在〜/ .m2 / settings.xml中设置settings.xml文件来更改此默认位置

要么

对于全局使用,您可以从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


9
2018-01-22 08:26





在Windows上,当安装并作为Windows服务运行时,默认为以下。

C:\Windows\SysWOW64\config\systemprofile\.m2\repository

C:\Windows\System32\config\systemprofile\.m2\repository


3
2018-04-26 10:55



哇 !你是怎么知道的? - kylexy1357
如何修复更改C:\ Windows \ System32 \ config \ systemprofile \ .m2 \ repository,因为我设置了全局配置,但没有更改??? - ImranRazaKhan


答案:


实际上它取决于每个maven项目的配置。默认情况下,Jenkins将使用本地存储库 JENKINS_HOME_DIR/.m2/repository 如果你通过勾选自动安装复选框来安装maven,否则它将使用本地/home/username/.m2/repository。

但是,您可以通过在〜/ .m2 / settings.xml中设置settings.xml文件来更改此默认位置

要么

对于全局使用,您可以从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


9
2018-01-22 08:26





在Windows上,当安装并作为Windows服务运行时,默认为以下。

C:\Windows\SysWOW64\config\systemprofile\.m2\repository

C:\Windows\System32\config\systemprofile\.m2\repository


3
2018-04-26 10:55



哇 !你是怎么知道的? - kylexy1357
如何修复更改C:\ Windows \ System32 \ config \ systemprofile \ .m2 \ repository,因为我设置了全局配置,但没有更改??? - ImranRazaKhan


我建议使用 配置文件提供程序插件 管理Maven设置。

该插件允许通过Jenkins UI管理配置文件,并为每个Maven项目构建轻松选择。


1
2018-02-15 00:02





它应该使用您配置的任何内容 /home/username/.m2/settings.xml  - 记住 用户名 将是有效执行jenkins服务器的人。但是,如果您当前的maven版本在其/ conf目录中有一些settings.xml,那么它与/ home中的那个相比是优先的

找到(或创建)settings.xml后,指向您需要拥有本地存储库的任何位置


1
2018-02-14 11:04





关于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

1
2018-04-25 08:15





默认情况下,Jenkins将使用用于运行Jenkins的用户帐户下的本地存储库〜/ .m2 / repository。

它可以配置为使用私有存储库进行构建,但听起来好像没有配置它。

当我把Jenkins脚本放在启动时,即/ usr / bin / java -jar .war时,它在构建项目时再次下载了我的项目的所有依赖项,尽管我已经在启动脚本之前构建了配置项目5次

从这一点来看,听起来好像你的启动脚本可能是以不同的用户身份运行的?也许是 root 用户?

以root身份运行Jenkins会导致它使用不同的本地存储库,即 /root/.m2/repository。您可以检查那里是否存在Maven存储库,如果存在,请确保Jenkins永远不会以root身份运行。


0
2018-02-14 11:09





在Ubuntu中,我在/var/lib/jenkins/.m2下找到了存储库位置 我刚刚删除了那个,而是链接到我现有的maven存储库......


0
2018-02-13 16:17