2014-02-14 57 views
8

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

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

回答

1

它应该使用您在/home/username/.m2/settings.xml中配置的任何内容 - 记住用户名将是有效执行jenkins服务器的一个。但是,如果你当前的maven版本在/ conf目录下有一些settings.xml,那么这个版本比你的/ home版本的版本优先。一旦你找到(或者创建)了settings.xml,指向无论您需要拥有您的本地存储库,您都可以使用本地存储库

0

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

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

当我把詹金斯脚本启动,即在/ usr /斌/ Java的罐子的.war,它再次下载我的项目的所有依赖,同时建立它,虽然我已经把之前建立的配置项目的5倍在启动脚本

从这,它听起来好像你的启动脚本可能作为一个不同的用户运行?也许root用户?

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

1

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

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

7

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

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

    OR 

的地球仪使用,您可以在从jenkins_home_dir/conf目录

,如果你安装的Maven通过蜱安装自动复选框

Step1.选择Maven安装在詹金斯家特定项目更改,例如目录

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

Step 2.更改settings.xml中的localRepository

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

1

在Unix系统中使用find工具,

[[email protected] ~]# sudo find/-name ".m2" 
/root/.m2 
/var/lib/jenkins/.m2 

/var/lib/jenkins在RHEL下,(JENKINS_HOME_DIR应该是/var/lib/jenkins

[[email protected] ~]# 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

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

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

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

+0

哇!你怎么知道的? – kylexy1357

0

在Ubuntu中,我找到了存储库位置下/var/lib/jenkins/.m2 我只是删除了一个,而是做了一个链接到我现有的Maven仓库。 ..