存档

文章标签 ‘maven’

jenkins做持续集成二

2019年7月25日 没有评论

上一篇文章完成了jenkins的装和基本配置

新建一个maven的持续集成项目。

注意:maven命令我们在上文最后部分自动安装,配置保存之后并不会立刻安装maven,maven命令工具会在第一次构建maven项目是自动下载安装。

新建项目


配置基本信息

配置源码获取方式为git

遇到的一个错误

 No valid crumb was included in the request

在jenkins 的Configure Global Security下 , 取消“防止跨站点请求伪造(Prevent Cross Site Request Forgery exploits)”的勾选或者使用代理的情况下勾选代理。(如下图)

继续,设置构建触发条件,定时扫描构建

构建前后都可以执行特定的动作如shell脚本,这里演示就省略了。只填入构建命令clean package

报保存配置之后,点立即构建

jenkins就会在后台开始自动构架,这里会显示构建进度,构建完成后红色表示失败,蓝色表示成功,点击可以进去查看日志。

点击console查看日志

如果执行错误可以通过日志查看原因,修改错误后,重新构建

可以看到前面三步有构建失败,查看日志可以发现原因:一个是找不到pom.xml,另一是maven下载不了文件。pom文件需要从工程根目录开始算,加上子文件夹路径即可。

通过查看构建日志, maven报错如下:

Failed to transfer Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:1.4.1.RELEASE from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.52.215] failed: Connection timed out (Connection timed out)
ERROR: Failed to parse POMs
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for com.jege.spring.boot:spring-boot-hello-world:1.0.0.RELEASE: Could not transfer artifact org.springframework.boot:spring-boot-starter-parent:pom:1.4.1.RELEASE from/to central (https://repo.maven.apache.org/maven2): Connect to repo.maven.apache.org:443 [repo.maven.apache.org/151.101.52.215] failed: Connection timed out (Connection timed out) and 'parent.relativePath' points at no local POM @ line 24, column 10

构建失败,是因为jenkins配置了代理,但是自动安装的maven没有设置代理,给maven配置代理之后构建成功。

maven代理配置方法:

检查完毕之后,编辑~/.m2/settings.xml文件,代码如下:添加代理配置如下:

<settings>
   ...
<proxies>
      <proxy>
         <id>my-proxy</id>
         <active>true</active>
         <protocol>http</protocol>
         <host>192.168.10.117</host>
         <port>3267</port>
         <!--
         <username>shihuan</username>
         <password>123456</password>
         <nonProxyHosts>repository.mycom.com|*.google.com</nonProxyHosts>
         -->
      </proxy>
    </proxies>
   ...
</settings>   

proxies下可以配proxy元素,如果你声明了多个proxy元素,则默认情况下第一个被激活的proxy会生效。这里声明 了一个id为my-proxy的代理,active的值为true表示激活该代理,protocol表示使用的代理协议,这里是http。当然,最重要的 是指定正确的代理服务器的ip和端口。

分类: 未分类 标签: