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

[经验分享] jenkins 学习记录1

[复制链接]

尚未签到

发表于 2018-1-8 17:13:37 | 显示全部楼层 |阅读模式
主题
  以前自己做些小玩意儿比如博客(http://blogv3.labofjet.com/)的时候,在远程服务器上的tomcat发布工程用的是目录的结构,而不是war.原因很简单.用目录结构的话每次只需要把修改的.class文件,.jsp文件等文件覆盖原本的文件即可.而如果是war的话就无比蛋疼,每次都要重新整个war覆盖,而且打包比较麻烦.
  对于我自己玩玩的项目当然没问题.但是如果一次修改了多个文件,那一个个找出来覆盖tomcat上旧的文件也是一件很让人火大的事情.
  公司项目打包用的是jenkins.虽然一般是测试打包,但是我也偷偷手贱点过几次(哈哈)..觉得还是蛮好用的,确实减少了不少工作量,而且不容易出错.所以有空的时候我也学习了下jenkins打包.并记录下学习过程与心得.

安装
  其实安装没啥好记录的....学计算机的就算不看教程应该也都会吧..简单分享下..没啥技术含量...= =
  我在jenkins的官网上发现了不同操作系统的安装包.但是我觉得最简单的还是war包的那种方式,因为只要装了java就可以跨平台了.而且我肯定会装java.所以我就下载了这个版本的jenkins.
  然后我设置了一下环境变量.

  不设置也没关系的.会有个默认安装地址.
  然后把war丢到tomcat里启动tomcat就行(其实不用tomcat,直接java -jar jenkins.war也可以的).
  然后访问http://localhost:8080/jenkins 会跳转并让你输入一个字符串证明你有操作权限

  然后就让你装插件...其实也没啥好装的...自带的就够了....我额外装了一个publish over ssh和ssh plugin..因为以后可能要远程部署项目(好令人激动).
  再然后就新建1个用户作为admin.
  然后进入 系统管理 -> 插件管理 去安装一下maven的插件,因为我的项目都是用maven的.所以要装这个插件.

  装好maven插件以后还需要在 系统管理 -> Global Tool Configuration里设置一下mave的安装地址


打包项目
  安装好jenkins以后就可以打包了.新建一个job.选择maven项目.

选择代码仓库地址
  我代码是用git托管在oschina上的.所以仓库地址写oschina的git的地址

  配置完地址URL以后就提示我没权限.
  那我们就在Credentials里配置一下.有很多种认证方式.可能用户名和密码是最简单的.但是我因为以前把本机的SSH private key在oschina上添加过...所以我这里就采用这种方式了.


build
  即使不配置其他选项,用默认的参数取打包应该也能成功.但是有个很蛋疼的地方就是maven install的时候会去执行各种test.
  执行test比较费时,而且打包的时候并不需要jenkins去做test.平时我们自己会去做的.所以我们需要关闭test
  那我们就百度一下怎么跳过test的关节好了.(其实jenkins在这里特别提示了一下怎么配置参数.例子就是跳过maven的test)

  然后就可以打包了.

注意事项:
  我一开始打包各种失败.查看了控制台发现错误都是GBK不可映射字符.
  解决办法有2个:
  第一种是在pom里添加
  

    <build>  <plugins>
  <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>2.0.2</version>
  <configuration>
  <source>1.7</source>
  <target>1.7</target>
  <encoding>UTF-8</encoding>
  </configuration>
  </plugin>
  </plugins>
  </build>
  

  但是打包还是会有提示说构建用的字符集是依赖于系统的.
  第二种是在pom里添加
  

    <properties>  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  

  就没问题了.

打包多个项目
  打包多个项目的时候会有个有趣的现象.
  比如有2个项目service和web.都作为job在jenkins里.
  当你打包service的时候会等service打完会自动去打包web.
  原因是web是依赖于service的.所以当service更新的时候要去更新web.
  这也解释了下maven为什么要拆分多个模块...一个原因就是打包的时候如果我只打包web.那依赖的service这个jar包可以直接复制到lib目录下而不用重新编译service.打包速度会快许多.

小结
  根据上面的记录已经可以成功打包了...后面有机会再学习下怎么把包发布到远程的tomcat并重启服务器..都能做到的话就爽歪歪了.

运维网声明 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-432984-1-1.html 上篇帖子: 【持续集成】GIT+jenkins+snoar——jenkins发布php、maven项目 下篇帖子: jenkins全局安全设置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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