Jenkins存储库位置

时间:2014-02-14 10:50:17

标签: java maven jenkins

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

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

7 个答案:

答案 0 :(得分:12)

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

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

OR

对于全球使用,您可以从jenkins_home_dir / conf

更改它

例如,如果您通过勾选安装自动复选框

Step1.在jenkins主目录中选择特定项目的maven安装

$ cd Jenkins_home_dir/tools/hudson.tasks.Maven_MavenInstallation/

Step 2.更改settings.xml中的localRepository

settings.xml的层次结构是用户.m2目录,如果找不到,则会尝试在{maven home}/conf/settings.xml中找到该目录。

答案 1 :(得分:6)

在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

答案 2 :(得分:6)

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

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

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:1)

我建议使用configuration file provider plugin来管理Maven设置。

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

答案 5 :(得分:0)

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

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

  

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

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

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

答案 6 :(得分:0)

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