Ubantu Jenkins打包部署二:Jenkins配置

 

2.1 安装JDK

如果未安装JDK,或者想使用Oracle的JDK。

1)从Oracle官网下载jdk包

2)解压后的文件进行安装。

安装到 /usr/lib目录下

cd  /usr/lib

如果需要安装在其他的大容量磁盘,则需要在/usr/lib下创建

软链接。

$ ln -s [安装目录]  /usr/lib/jdk

3)配置环境变量

#set oracle jdk environment
export JAVA_HOME=【jdk安装目录】  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  

使环境变量立即生效。
$ source ~/.bashrc

4) 验证Java是否可用。

$ java -version

$ javac -version

 

5) jenkins配置JAVA_HOME

jenkins管理后台--》系统管理-》系统设置--》环境变量,添加键值对

键:ANDROID_HOME

值:【jdk安装目录】

 

2.2 Jenkins系统设置

 

2.2.1 配置环境变量

主要是配置Jenkins使用的一些环境变量,方便编译的时候使用。

系统设置--》全局属性--》环境变量,环境变量是键值对的样式。

ANDROID_HOME: Android安装目录

JAVA_HOME:Java的安装目录

SCRIPT_HOME:脚本的根目录(如果使用脚本编译的话可以设置方便使用)

 

2.2.2 管理配置部分

Jenkins访问位置:

Jenkins URL: http://192.168.xx.xx:8088/

系统管理员邮箱地址:mobile@cdeledu.com

 

2.2.3 邮箱通知扩展部分

SMTP Server: smtp邮箱服务器

 

2.2.4 GitLab merge request Server部分

Gitlab Host URL:GitLab主机URL地址。

Jenkins Username:Jenkins访问GitLab的用户名

 

2.3 全局安全配置

勾选启动安全

安全域采用: Jenkins专有用户数据库

允许用户注册选项,根据需要设置。如果采用用户统一管理,可以禁用。

 

2.4 全局工具配置

配置Maven、JDK等工具。

 

2.5 插件管理

安装需要使用的插件。

例如:

build-name-setter:设置Build名称。

可参考《Jenkins插件大全》

https://blog.csdn.net/pansaky/article/details/80755739

 

常见问题分析:

打包过程发生错误。不能创建文件夹。

错误信息如下。

14:40:18.864 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Project :app - Registering model element 'tasks.transformClassesWithDexForAgent127Cdeljianshe' (hidden = false)
14:40:18.865 [DEBUG] [org.gradle.model.internal.registry.DefaultModelRegistry] Project :app - Registering model element 'tasks.packageAgent127Cdeljianshe' (hidden = false)
14:40:18.865 [QUIET] [system.out] 
14:40:18.866 [QUIET] [system.out] watchTimeConsume disabled
14:40:18.866 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
14:40:18.866 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
14:40:18.866 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
14:40:18.866 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
14:40:18.866 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] A problem occurred configuring project ':app'.
14:40:18.866 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] > Cannot create directory /home/t1/jenkins/workspace/accmobile-git/app/build/intermediates/incremental/packageAgent127Cdeljianshe/zip-cache
14:40:18.866 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
14:40:18.866 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Exception is:
14:40:18.867 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'.
14:40:18.867 [ERROR] [org.gradle.internal.buildevents.

原因:创建文件失败。是因为权限不足。

root@t1-OptiPlex-3010:/home/t1/jenkins/workspace/accmobile-git/app# ll
total 80
drwxrwxrwx  7 jenkins jenkins  4096 11月  9 13:08 ./
drwxrwxrwx 13 jenkins jenkins  4096 11月  9 14:26 ../
-rwxrwxrwx  1 jenkins jenkins 25702 11月  9 11:24 app.iml*
drwxr-xr-x  7 root    root     4096 11月  9 13:09 build/
-rw-r--r--  1 jenkins jenkins  6757 11月  9 11:44 build.gradle
drwxrwxrwx  3 jenkins jenkins  4096 11月  9 10:43 E:/
-rw-r--r--  1 jenkins jenkins     8 11月  9 11:44 .gitignore
drwxrwxrwx  2 jenkins jenkins  4096 11月  9 11:44 keystore/
drwxrwxrwx  2 jenkins jenkins  4096 11月  9 11:44 libs/
-rw-r--r--  1 jenkins jenkins  9245 11月  9 11:44 proguard-rules.pro
drwxrwxrwx  7 jenkins jenkins  4096 11月  8 10:31 src/
发现app/build下这个文件夹的所有者是root,因此jenkins不能写入。

解决方法:将目录文件夹的所有者和用户组设置为jenkins。

$ sudo chown -R jenkins build

$ sudo chgrp -R jenkins build

root@t1-OptiPlex-3010:/home/t1/jenkins/workspace/accmobile-git/app# ll
total 80
drwxrwxrwx  7 jenkins jenkins  4096 11月  9 13:08 ./
drwxrwxrwx 13 jenkins jenkins  4096 11月  9 14:26 ../
-rwxrwxrwx  1 jenkins jenkins 25702 11月  9 11:24 app.iml*
drwxr-xr-x  7 jenkins jenkins  4096 11月  9 13:09 build/
-rw-r--r--  1 jenkins jenkins  6757 11月  9 11:44 build.gradle
drwxrwxrwx  3 jenkins jenkins  4096 11月  9 10:43 E:/
-rw-r--r--  1 jenkins jenkins     8 11月  9 11:44 .gitignore
drwxrwxrwx  2 jenkins jenkins  4096 11月  9 11:44 keystore/
drwxrwxrwx  2 jenkins jenkins  4096 11月  9 11:44 libs/
-rw-r--r--  1 jenkins jenkins  9245 11月  9 11:44 proguard-rules.pro
drwxrwxrwx  7 jenkins jenkins  4096 11月  8 10:31 src/

修改完成后。app/build所有者变为jenkins了。

 

2. Java使用出错

16:29:35.332 [DEBUG] [org.gradle.launcher.daemon.server.exec.ExecuteBuild] The daemon has finished executing the build.
16:29:35.377 [INFO] [org.gradle.launcher.daemon.client.DaemonClient] Received result Failure[value=java.lang.IllegalStateException: Finish can only be called once.] from daemon DaemonInfo{pid=4142, address=[e6b5e0bc-c7c0-4772-a94f-f819c0d7c436 port:37677, addresses:[/0:0:0:0:0:0:0:1, /127.0.0.1]], state=Idle, lastBusy=1541748990501, context=DefaultDaemonContext[uid=9d286209-867e-4d5d-b100-69db07888e43,javaHome=/usr/lib/jvm/java-8-openjdk-amd64,daemonRegistryDir=/home/t1/jenkins/.gradle/daemon,pid=4142,idleTimeout=10800000,daemonOpts=-XX:MaxPermSize=512m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx2048m,-Dfile.encoding=UTF-8,-Duser.country=US,-Duser.language=en,-Duser.variant]} (build should be done).
16:29:35.377 [DEBUG] [org.gradle.launcher.daemon.client.DaemonClientConnection] thread 1: dispatching class org.gradle.launcher.daemon.protocol.Finished
16:29:35.378 [DEBUG] [org.gradle.launcher.daemon.client.DaemonClientConnection] thread 1: connection stop
16:29:35.396 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
16:29:35.397 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] FAILURE: Build failed with an exception.
16:29:35.398 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
16:29:35.398 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * What went wrong:
16:29:35.398 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] Finish can only be called once.
16:29:35.398 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] 
16:29:35.398 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] * Exception is:

配置Jenkins的全局变量JAVA_HOME

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值