关于Maven和Travis CI的介绍请移步前辈的博客
使用Maven、Eclipse与travis-ci进行在线build操作详解

在该博客中,前辈已经把Travis CI在线build的目的说的很清楚了,我们也是希望确保自己的程序代码可以在TA的电脑上成功运行。

这是需要作为一个验证,可能程序运行依赖了本地有的环境配置,而用户在使用你的程序,由于他的本地没有配置,因此程序无法运行。如果在线build成功,那么程序则可以在不依赖本地环境下运行。

接下来进行正式的教学总结部分。

教学总结

Travis CI初步

首先上Travis CI网站上获取下相关信息,在这里用GitHub账号登陆,切记一点,这个账号中是包含你要build的仓库的那个账号。
使用Travis CI进行在线build
然后可能要经过一些**啦,授权啦,这些玩意,再之后点击你的头像,应该可以来到这里。
使用Travis CI进行在线build
对于我们HIT做软件构造实验的童鞋,你们的实验仓库是private的,在travis-ci.org中是查看不到的,要点击进入https://travis-ci.com/这里去找。然后就能看到了。

build前的准备工作

强烈建议初入Travis的小白去读一读官网上的教学文档,给个链接Travis CI Tutorial。读了这个,本节内容可以跳过了。墙裂建议!!!

本节给那些英文不好的,没有耐心的做一个小小的总结。

在经历了GitHub账号和Travis CI建立联系之后,你需要在你的需要build的项目目录下新建一个.travis.yml文件,创建方式下面会说到,这个文件的内容下面也会讲解。

然后根据本文开篇提到的那位前辈中的博客所讲,你还需要把你的Eclipse项目转成maven project,这点参见他的博客就好了。

再然后,如果你把你更改好的项目,add, commit, push上传到远程仓库,Travis CI就会自动在线build你的最新项目了。如果passed话,恭喜你,成功了。

.travis.yml

首先先创建这个文件。在项目的根目录下,new–file
使用Travis CI进行在线build
命名.travis.yml
使用Travis CI进行在线build
创建。当然这里可能会发现你的项目目录中看不到这个文件,参见该博客Eclipse项目中显示隐藏的文件

然后,这个文件怎么写呢,常规写法是这样的

language: java
jdk:
 - oraclejdk8

至于这里面的坑,下面再说,姑且先这么写,指定语言为Java,jdk为jdk8

pom.xml

这个文件,如果你在按照那个前辈的博客做的,把项目转换成maven project的话,你的项目目录中回多出如下东西:
使用Travis CI进行在线build
一个target文件夹和一个pom.xml文件。pom.xml这个东西里面已经写了一些配置了。我们要做的,是把我们所依赖的库的包的依赖配置文件,复制到这个配置文件中

拿我们的junit.jar为例。你需要上这个网站上找junithttps://mvnrepository.com/,你找到的可能是这个,注意一下你的junit版本,我用的是第二个。
使用Travis CI进行在线build
然后选择相应的版本号,我猜红色的版本号都是测试版本吧。。
使用Travis CI进行在线build
然后把出现的配置代码,粘贴到你的pom.xml中,像这样子,注意你的依赖配置代码是要放在<dependencies></dependencies>中的。
使用Travis CI进行在线build

如果你是完全按照我说的做的,请把junit配置代码中的某一行写的<scope>test</scope>删除掉,因为这意味着你的junit依赖只作用在了test的代码上,到最后还是会报错,因为src代码找不到你添加的依赖。

把你需要的包的配置代码都搞进去之后,这部分就完成了。

build时候踩的坑

下面就是精彩的环节了,让大家知道我都踩了什么坑!!!

The command “mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V” failed and exited with 1 during

该错误提示出现在build时的job log的最后一行。你在浏览鬼畜一般的job log的时候,会遇到几行红字,大概是说什么东西失败了,然后尝试1 of 3,尝试2 of 3,尝试3 of 3,最后心累尝试不下去了,报错,your build has been stopped之类的,再给出两行标题红字,那么请参考该解决方案The command “mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V” failed and exited with 1 during

大致就是把你的.travis.xml改成下面这样就好了吧

language: java

install: mvn install

build failure: error: unmappable character for encoding UTF-8

我在这个坑里蹲了大概半个小时。是这样的,我也不知道怎么,大概Travis CI那边build只认UTF-8编码,然后你build的时候,job log出现大量的ERROR,然后GG挂了。这时候你可能只需要把你的Eclipse的编码方式改成UTF-8,然后再add, commit, push一下,自动build就好了!

Eclipse改编码的教程在这里Eclipse更改editor的编码

各位亲,以后都用UTF-8写东西吧!!我本来用GBK写的,后来一转UTF-8,中文注释全**乱码了!!改得我好苦啊ヽ(*。>Д<)o゜

附个成功的图

使用Travis CI进行在线build
使用Travis CI进行在线build

相关文章: