jenkins 学习记录1

主题

  以前自己做些小玩意儿比如博客(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并重启服务器..都能做到的话就爽歪歪了.

原文地址:https://www.cnblogs.com/abcwt112/p/6274575.html