使用Travis CI进行在线build
关于Maven和Travis CI的介绍请移步前辈的博客
使用Maven、Eclipse与travis-ci进行在线build操作详解
在该博客中,前辈已经把Travis CI在线build的目的说的很清楚了,我们也是希望确保自己的程序代码可以在TA的电脑上成功运行。
这是需要作为一个验证,可能程序运行依赖了本地有的环境配置,而用户在使用你的程序,由于他的本地没有配置,因此程序无法运行。如果在线build成功,那么程序则可以在不依赖本地环境下运行。
接下来进行正式的教学总结部分。
教学总结
Travis CI初步
首先上Travis CI网站上获取下相关信息,在这里用GitHub账号登陆,切记一点,这个账号中是包含你要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.yml
创建。当然这里可能会发现你的项目目录中看不到这个文件,参见该博客Eclipse项目中显示隐藏的文件
然后,这个文件怎么写呢,常规写法是这样的
language: java
jdk:- oraclejdk8
至于这里面的坑,下面再说,姑且先这么写,指定语言为Java,jdk为jdk8
pom.xml
这个文件,如果你在按照那个前辈的博客做的,把项目转换成maven project的话,你的项目目录中回多出如下东西:
一个target
文件夹和一个pom.xml
文件。pom.xml
这个东西里面已经写了一些配置了。我们要做的,是把我们所依赖的库的包的依赖配置文件,复制到这个配置文件中
拿我们的junit.jar
为例。你需要上这个网站上找junit
,https://mvnrepository.com/,你找到的可能是这个,注意一下你的junit版本,我用的是第二个。
然后选择相应的版本号,我猜红色的版本号都是测试版本吧。。
然后把出现的配置代码,粘贴到你的pom.xml
中,像这样子,注意你的依赖配置代码是要放在<dependencies></dependencies>
中的。
如果你是完全按照我说的做的,请把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: javainstall: 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_如何使用Travis CI和GitHub进行Web开发工作流程
travis ci by Vijayabharathi Balasubramanian 通过Vijayabharathi Balasubramanian 如何使用Travis CI和GitHub进行W ...
- 使用Travis-CI在线build
利用Travis-CI 在线build Java工程 什么是CI (Continuous Integration) 持续集成指的是,频繁地(一天多次)将代码集成到主干. 它的好处主要有两个:快速发现错 ...
- Travis CI mysql_DevOps工具介绍连载(34)——Travis CI
原标题:DevOps工具介绍连载(34)--Travis CI Travis CI 持续集成 Travis CI 是在线托管的持续集成服务,绑定Github项目,抓取新的代码自动进行测试构建,甚至自动 ...
- 构建指定仓库_使用Travis CI自动构建和部署你的GitBook
本文,博主将会介绍利用Travis CI持续集成服务自动化构建和部署GitBook. 首先介绍一下TravisCI,下文摘自维基百科-Travis CI Travis CI是在软件开发领域中的一个在线 ...
- Travis CI 简介
什么是Travis CI Travis CI 是目前新兴的开源持续集成服务,它能帮助你在代码变化时自动构建.测试(当然你需求提供测试脚本).部署. 它是一个在线工具,不需要额外部署,支持大部分主流语言 ...
- 基于Travis CI实现 Hexo 在 Github 和 Coding 的同步部署
各位朋友,大家好,我是Payne,欢迎大家关注我的博客,我的博客地址是 https://qinyuanpei.github.io .在曾经的一篇博客:<持续集成在Hexo自动化部署上的实践& ...
- travis-ci自动部署_如何使用Travis CI部署(几乎)零恐惧的Cloud Foundry应用
travis-ci自动部署 by Robin Bobbitt 罗宾·波比(Robin Bobbitt) 如何使用Travis CI部署(几乎)零恐惧的Cloud Foundry应用 (How to d ...
- Flutter GitHub Travis CI 搭建
通过 Travis CI 连接 GitHub 上的 Flutter 项目, 实现持续集成: 代码扫描, 测试, 打包发布 release. Install Android SDK os: linuxl ...
- 利用Travis CI 让你的github项目持续构建(Node.js为例)
Travis CI 是目前新兴的开源持续集成构建项目,它与jenkins,GO的很明显的特别在于采用yaml格式,简洁清新独树一帜.目前大多数的github项目都已经移入到Travis CI的构建队列 ...
- Travis CI 一些专用术语介绍
解释 Travis CI 的最简单方法是,每次提交到 GitHub 时它都会运行程序的测试(这可以通过多种方式进行配置,并且您始终可以在某些分支上禁用构建). 这样做的重点是,你通常可以很快发现你的提 ...
最新文章
- 软考网络工程师身份证忘记领取啦怎么办
- Python_基础_5
- 如何在 Windows 上安装 Python | Linux 中国
- ADO.Net知识总结
- c++ 两个多边形区域重叠_2018 年英国中级数学挑战赛中的多边形问题
- 如何把svn代码拉下来,Maven - 从SVN拉取代码
- 【Python】第三方库安装脚本
- FTP 简介与 Windows 系统搭建 FTP 服务器
- C# 实体映射,对象映射框架——Mapster
- 算法求100以内的质数
- 这些年的项目管理心得
- K3 工业单据的对应相关表作用
- 隐藏计算机关机键,关机快捷键有哪些?电脑Windows快捷关机最全方法图文详解
- 《前端圈技术论坛-腾讯互娱专场》观后感
- 画思维导图一定要用计算机来完成吗,一起来画思维导图
- 分析PNG图片格式——数据块
- python开发的gui界面,python写gui应用程序
- HR 开发技术(abap 转载)
- 安卓的工程目录文件夹简单介绍
- Abbkine IFKine驴抗小鼠IgG二抗,绿色荧光标记方案
热门文章
- 如何使用 IT 服务台调查来提高满意度
- Linux如何改为北京时间
- 史上最全的开源库整理
- JS将sql的dateTime格式数据例如:Wed Sep 30 00:00:00 CST 2020 字符串转换成2020-09-30 00:00:00时间格式
- Hadoop解除安全模式
- 启用计算机的fn键,联想 ThinkPad 笔记本 Fn 键 关闭与启用方法
- chromecast协议_如何将Chromecast用作快速信息仪表板
- 小米手机miui12系统下拉通知栏有通知但是看不到通知内容
- CC(标准)版D碟收藏指南(三)
- python如何导入excel表格_使用Python读取电子表格中的数据