Jenkins没有找到手动安装的jar到存储库

时间:2014-09-16 14:15:05

标签: android maven jenkins

我试图在ubantu机器上设置jenkin来构建maven android项目

Android SDK : android-sdk_r23.0.2-linux.tgz
OS : ubantu
Maven home: /usr/share/maven3
Java version: 1.7.0_65, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre

使用android SDK deployer

安装了android依赖项

如果我运行" mvn clean install"在命令行项目上成功构建,但如果我尝试使用jenkin作业,它会失败,因为它无法找到手动安装的jar。

jenkin用户匿名

尝试以下仍然面临同样的问题:

我遇到了一个问题, 我按照此链接https://www.digitalocean.com/community/tutorials/how-to-add-and-delete-users-on-ubuntu-12-04-and-centos-6

添加了新用户

以root身份添加新用户的步骤:

sudo adduser jenkinadmin 
sudo /usr/sbin/visudo

编辑文件如下 在用户权限规范下添加用户名和与root相同的权限将授予他们sudo权限。

- #用户权限规范

root    ALL=(ALL:ALL) ALL 
jenkinadmin ALL=(ALL:ALL) ALL

按'cntrl x'退出文件,然后按'Y'保存

并将/ etc / default / jenkins文件JENKINS_USER更新为上面创建的新用户。发出

chown -R jenkinadmin /var/log/jenkins
chown -R jenkinadmin /var/lib/jenkins
chown -R jenkinadmin /var/run/jenkins
chown -R jenkinadmin /var/cache/jenkins

然后重新启动Jenkins jenkins并使用ps命令检查用户是否已更改 /etc/init.d/jenkins restart ps -ef | grep jenkins

我可以看到jenkin正在盯着同一个新用户,但我仍然得到相同的mave repo错误。

也可以使用以下命令编辑sudouser sudo / usr / sbin / visudo 现在我总是提示这个错误

" jenkinadmin不在sudoers文件中。将报告此事件"

我也使用sudo apt-get install maven安装了maven并安装了maven

root@myBox:/etc# mvn -v
Apache Maven 3.2.1 (ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-14T12:37:52-05:00)
Maven home: /usr/share/maven3
Java version: 1.7.0_65, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-32-generic", arch: "amd64", family: "unix"

1 个答案:

答案 0 :(得分:0)

由于maven在命令行上正常运行但在运行Jenkins时出现问题,这很可能意味着它是一个PATH问题。只需使用在命令行运行mvn的用户运行Jenkins。

要找出运行Jenkins的用户,可以运行以下命令:

[tom@jenkins_master ~]$ ps -ef | grep -i jenkins
ec2-user 20040     1  0 Sep15 ?        00:07:59 /etc/alternatives/java -Djava.awt.headless=true -Dhudson.util.ProcessTree.disable=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=8009 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
tom   23248 23222  0 22:46 pts/0    00:00:00 grep -i jenkins
[tom@jenkins_master ~]$

从上面的输出可以看出,Jenkins以用户ec2-user的身份运行。如果您在没有进行任何自定义的情况下安装了Jenkins,那么启动脚本很可能是/etc/init.d/jenkins。如果您要打开此文件,则应具有以下条目:

JENKINS_CONFIG=/etc/sysconfig/jenkins

上述文件( / etc / sysconfig / jenkins )包含Jenkins将运行的用户名条目。 您应该更改它,但您还必须确保更改Jenkins使用的其他文件和目录的所有权。这些可以从上面粘贴的输出中看出:

的/ var / lib中/詹金斯/
/ usr / lib中/詹金斯/
在/ var /日志/詹金斯/
的/ var /缓存/詹金斯/

这些应该做。更改所有权并重新启动Jenkins后,请务必检查日志以确保没有权限问题。就是这样。

要在命令行中查找正在运行命令的用户,只需键入以下命令:

[tom@jenkins ~]$ id
uid=514(tom) gid=515(tom) groups=515(tom)
上述输出的

uid=514(tom)部分确认您当前以“tom”用户身份登录。