阅读时间: 3 分钟
什么是Travis CI?
Travis CI是一个开源的CI服务,用于构建和测试托管在你喜欢的SCM上的项目。你可以通过在GitHub仓库的根目录下添加一个名为.travis.yml 的文件来轻松配置Travis CI。
Travis CI是第一个CI即服务的工具!
你可以轻松地将Travis与GitHub、Bitbucket等常见的云存储库集成。它消除了对专用服务器的需求,因为Travis CI服务器托管在云端,因此它节省了大量的成本。
Travis CI对开源项目是免费的。对于商业项目,你需要购买一个企业计划。你可以从我们的其他文章中找到更多关于Travis的信息,请点击这里。
在Travis CI上运行Java项目
在Linux平台上使用Travis CI运行一个Java项目是非常简单的。你所要做的就是像这样设置语言为java。
language: java
如果Travis检测到项目目录下有pom/gradle文件,它会自动为我们安装所需的依赖项。默认情况下,它使用Maven 3。
使用jdk_switcher ,也可以非常容易地在同一流水线上实现JDK版本之间的切换。
script:
- jdk_switcher use openjdk8
- # do stuff with open Java 8
最重要的是,jdk_switcher 还会自动对$JAVA_HOME 进行适当的更新。
然而,当涉及到Windows平台时,由于Windows平台仍处于实验阶段,所以支持力度还不是很大。但是,不要担心,因为这个博客正是为此而写的。
Windows平台对Travis CI的支持
请注意,我们的Windows环境还处于早期阶段,目前只支持Linux或macOS上的最小子集。
要在Windows上构建,只需要做。
os: windows
请注意,只有Windows 1809版本被支持,所有构建都在Gitbash实例中运行。你还有Chocolatey软件包管理器,它相当有用,也有标准的powerhell模块。
Chocolatey中默认安装的软件包如下。
- 7zip.install v19.0
- chocolatey v0.10.15
- chocolatey-core.extension v1.3.5.1
- chocolatey-dotnetfx.extension v1.0.1
- chocolatey-fastanswers.extension v0.0.2
- chocolatey-visualstudio.extension v1.8.1
- chocolatey-windowsupdate.extension v1.0.4
- cmake.install v3.16.2
- curl v7.68.0
- DotNet4.5.2 v4.5.2.20140902
- DotNet4.6 v4.6.00081.20150925
- DotNet4.6-TargetPack v4.6.00081.20150925
- DotNet4.6.1 v4.6.01055.20170308
- dotnetfx v4.8.0.20190930
- git.install v2.25.01
- hashdeep v4.4
- jq v1.6
- KB2919355 v1.0.20160915
- KB2919442 v1.0.20160915
- KB2999226 v1.0.20181019
- KB3033929 v1.0.5
- KB3035131 v1.0.3
- llvm v9.0.0
- microsoft-build-tools v15.0.26320.2
- mingw v8.1.0
- netfx-4.5.1-devpack v4.5.50932
- netfx-4.5.2-devpack v4.5.5165101.20180721
- netfx-4.6.1-devpack v4.6.01055.00
- rsync v5.5.0.20190204
- ruby v2.7.0.1
- vcredist140 v14.24.28127.4
- 我的天啊,我的天啊,我的天啊。
- 我的天哪!我的天哪!我的天哪!我的天哪!我的天哪!我的天哪!"。
- 视觉化的2017-workload-netcorebuildtools v1.1.2
- 我的天哪!我的天哪!我的天哪!我的天哪!我的天哪!我的天哪!我的天哪!"。
- 视觉化的2017-workload-webbuildtools v1.3.2
- 视觉化的2017buildtools v15.9.18.0
- Wget v1.20.3.20190531
- 淘宝网上有很多卖家,有的卖家在淘宝网上卖东西,有的卖家在淘宝网上卖东西。
- 淘宝网
- winscp.install v5.15.9
- wsl v1.0.1
而且,如果你需要上述清单以外的东西,那么你可以手动安装。然而,Travis存储Windows路径的方式与我们习惯的方式有些不同。比如说。
A basic Python 2.7.9 interpreter is also included: /C/ProgramData/chocolatey/bin/python.exe
Travis为Windows平台提供了一些基本的语言支持,如:。
- Bash
- C
- C++
- Go
- Julia
- 脚本
- 锈
正如你所知道的,Java并不是其中之一现在,让我们看看如何实现这一目标。
如何在Windows平台上使用Travis CI构建一个Java项目?
首先,我们将使用shell作为Java的替代品。你可以使用上面列出的任何语言,只要你遵循我在下面提供的模板。我将使用Maven作为一个例子。另外,这是我创建的一个多os模板,你可以修改和使用它。
branches:
only:
- master
os:
- windows
language: shell
jdk:
- openjdk11
before_install:
- |
if [ "$TRAVIS_OS_NAME" = "windows" ]; then
choco install maven;
refreshenv;
fi;
install:
- |
if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
#Whatever you want to do
fi;
script:
- export JAVA_HOME="${JAVA_HOME:-/c/jdk}"
- |
if [[ "$TRAVIS_OS_NAME" == "windows" ]]; then
maven="$(find 'C:\ProgramData\chocolatey\lib\maven' -name mvn | head -n1)";
else
maven="mvn";
fi;
- $maven <your_goal_here>
首先,我们有一个标准的分支过滤器。然后,我们将操作系统设为Windows,语言设为Shell。对于JDK,我们使用openjdk11. ,这是标准的设置,你一定已经知道了。你可以根据你的需要来修改它。
真正的神奇之处在于此。在我们的before_install ,我们使用Chocolately软件包管理器安装Maven,同时刷新环境。不过,刷新是完全可有可无的。接下来,你可以安装任何你想要的东西。
最后,我们在script ,设置Java的路径,并为Maven创建一个别名。这一步很重要,如果你跳过这一步,Travis会抱怨找不到mvn 。
之后,你就可以使用我们上面设置的别名运行任何Maven命令了。祝您愉快!我希望你喜欢这篇文章,如果你喜欢,请务必查看我们其他有用的文章,并留下喜欢和评论!