如何在Windows平台上使用Travis CI建立一个Java项目?

168 阅读2分钟

阅读时间: 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的支持

Travis的官方文档中提到了以下内容。

请注意,我们的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命令了。祝您愉快!我希望你喜欢这篇文章,如果你喜欢,请务必查看我们其他有用的文章,并留下喜欢和评论!

knoldus-advt-stickerknoldus-advt-sticker

分享Knol。

相关信息