设为首页 收藏本站
查看: 1359|回复: 0

[经验分享] 使用Jenkins进行android项目的自动构建(3)

[复制链接]

尚未签到

发表于 2018-1-7 22:53:43 | 显示全部楼层 |阅读模式
  建立Jenkins项目
  1. “新增作业”->填写作业名称->选择“建置 Maven 2 或 3 專案”->OK。新增成功后会进入“組態設定”,暂时先保留默认值,稍后再进行设定。
  2. 按一下“马上建置”,会显示“已排入建置”,然后在“建置歷程”会见到#1的链接,点入该链接并选择“終端機輸出”,这时会见到一个失败的构建记录。当然会失败,因为我们还未为项目加入代码和pom.xml,之所以要进行一次构建,是让系统为我们生成项目目录,目录路径是<Jenkins_dir>/workspace/<project_name> 。
  3.  上传项目依赖的包,执行以下命令
  mvn install:install-file -Dfile=file.jar -DgroupId=group.id -DartifactId=artifact-id -Dversion=1.0.0 -Dpackaging=jar
  DgroupId和DartifactId构成了该jar包在pom.xml的坐标,项目就是依靠这两个属性定位。可以自己起名,如果用自己起的名字,在pom.xml的依赖中就要用自己所以的名字。 Dfile表示需要上传的jar包的绝对路径,文件会上传到Maven的默认仓库位置。要留意Jenkins调用的默认仓库路径和上传的默认仓库路径是否一致,windows环境下的仓库路径一般是 C:\Documents and Settings\<user>\.m2 或 C:\.m2,linux则是 <Jenkins_dir>/.m2 或 ~/.m2。
  4. 将android 项目代码和pom.xml加入到项目目录里,然后在按一下“马上建置”,如果代码和pom.xml都正确的话,项目应该会构建成功。
  5. 现在再回到“組態設定”界面进行设定
  因为之前安装了Git Plugin,所以“原始碼管理”中多了一项Git,填入正确的Repository URL,Credentials 加入用户名和密码。新增Additional Behaviours,加入check out to specific local branch。
  “建置觸發程序”可以选择“定期建置”或“輪詢 SCM”,“定期建置”是按规定的时间间隔进行构建,“輪詢 SCM”是按规定的时间间隔轮询Git进行构建。
  “新增建置前步骤”可以在建置前执行一些命令。
  “Root POM”指定pom.xml的位置,“Goal 及選項”填写构建时mvn 命令和参数,例如mvn clean package -P dev surefire-report:report,surefire-report:report 可以生成surefire report,但此report的html没有css,比较难看。可以先运行一次mvn site生成maven surefire report的html和css,然后保存下来,以后每次构建完成后再执行命令复制到report中。
  “新增建置后步骤”可以在建置后执行一些命令。
  6. “新增建置后动作”可以在建置后执行一些操作,如果安装了Email Extension Plugin的话,可以在构建完成后发出通知邮件。
  “新增建置后动作”->“可编式电子邮件通知”->advanced setting->“add trigger”可以增加触发邮件的条件,通知邮件内容中可以使用Content Token。
  通知邮件例子:
  

本郵件由程序自動發送,請勿直接回覆,謝謝<br/><hr/>  

  
構建編號:$BUILD_NUMBER<br/><hr/>
  

  
觸發原因:${CAUSE}<br/><hr/>
  

  
單元測試報告:${PROJECT_URL}ws/target/site/surefire-report.html<br/><hr/>
  

  
${JELLY_SCRIPT
,template="html"}<br/><hr/>  
${FILE
, path="./file.txt"}  

  更多可用token
  ${BUILD_LOG, maxLines, escapeHtml} -显示最终构建日志。


  • maxLines – 显示该日志最多显示的行数,默认250行。
  • escapeHtml -如果为true,格式化HTML。默认false。
  ${BUILD_LOG_REGEX, regex, linesBefore, linesAfter, maxMatches,showTruncatedLines, substText, escapeHtml, matchedLineHtmlStyle} -按正则表达式匹配显示构建日志的行数。


  • 匹配符合该正则表达式的行数。参阅java.util.regex.Pattern,默认“(?i)\b(error|exception|fatal|fail(ed|ure)|un(defined|resolved))\b”。
  • linesBefore -包含在匹配行之前的行编号。行数会与当前的另一个行匹配或者linesAfter重叠,默认0
  • linesAfter -包含在匹配行之后的行编号。行数会与当前的另一个行匹配或者linesBefore重叠,默认0
  • maxMatches -匹配的最大数量,如果为0,则包含所有匹配。默认为0。
  • showTruncatedLines -如果为true,包含[...truncated ### lines...]行。默认为true。
  • substText -如果非空,把这部分文字插入该邮件,而不是整行。默认为空。
  • escapeHtml -如果为true,格式化HTML。默认false。
  • matchedLineHtmlStyle -如果非空,输出HTML。匹配的行数将变为<b style=”your-style-value”> html escaped matched line </b>格式。默认为空。
  ${BUILD_NUMBER} -显示当前构建的编号。
  ${BUILD_STATUS} -显示当前构建的状态(失败、成功等等)
  ${BUILD_URL} -显示当前构建的URL地址。
  ${CHANGES, showPaths, format, pathFormat} -显示上一次构建之后的变化。


  • showPaths – 如果为 true,显示提交修改后的地址。默认false。
  • format – 遍历提交信息,一个包含%X的字符串,其中%a表示作者,%d表示日期,%m表示消息,%p表示路径,%r表示版本。注意,并不是所有的版本系统都支持%d和%r。如果指定showPaths将被忽略。默认“[%a] %m\n”。
  • pathFormat -一个包含“%p”的字符串,用来标示怎么打印字符串。
  ${CHANGES_SINCE_LAST_SUCCESS, reverse, format, showPaths,changesFormat, pathFormat} -显示上一次成功构建之后的变化。


  • reverse -在顶部标示新近的构建。默认false。
  • format -遍历构建信息,一个包含%X的字符串,其中%c为所有的改变,%n为构建编号。默认”Changes for Build #%n\n%c\n”。
  • showPaths, changesFormat, pathFormat – 分别定义如${CHANGES}的showPathsformatpathFormat参数。
  ${CHANGES_SINCE_LAST_UNSTABLE, reverse, format, showPaths,changesFormat, pathFormat} -显示显示上一次不稳固或者成功的构建之后的变化。


  • reverse -在顶部标示新近的构建。默认false。
  • format -遍历构建信息,一个包含%X的字符串,其中%c为所有的改变,%n为构建编号。默认”Changes for Build #%n\n%c\n”。
  • showPaths, changesFormat, pathFormat -分别定义如${CHANGES}的showPathsformatpathFormat参数。
  ${ENV, var} – 显示一个环境变量。


  • var – 显示该环境变量的名称。如果为空,显示所有,默认为空。
  ${FAILED_TESTS} -如果有失败的测试,显示这些失败的单元测试信息。
  ${JENKINS_URL} -显示Jenkins服务器的地址。(你能在“系统配置”页改变它)。
  ${HUDSON_URL} -不推荐,请使用$JENKINS_URL
  ${PROJECT_NAME} -显示项目的名称。
  ${PROJECT_URL} -显示项目的URL。
  ${SVN_REVISION} -显示SVN的版本号。
  ${CAUSE} -显示谁、通过什么渠道触发这次构建。
  ${JELLY_SCRIPT, template} -从一个Jelly脚本模板中自定义消息内容。有两种模板可供配置:HTML和TEXT。你可以在$JENKINS_HOME/email-templates下自定义替换它。当使用自动义模板时,”template”参数的名称不包含“.jelly”。


  • template -模板名称,默认”html”。
  ${FILE, path} -包含一个指定文件的内容


  • path -文件路径,注意,是工作区目录的相对路径。
  ${TEST_COUNTS, var} -显示测试的数量。


  • var – 默认“total”。

    • total -所有测试的数量。
    • fail -失败测试的数量。
    • skip -跳过测试的数量。

  参考资料:
  【1】 http://www.juvenxu.com/2011/05/18/hudson-email-ext/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432763-1-1.html 上篇帖子: Jenkins + testNg + maven 项目持续集成 下篇帖子: 利用Jenkins自动部署工具间接构建kettle的调度平台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表