java - Travis CI 上的 Gradle 构建失败

标签 java gradle travis-ci

由于 build.gradle 中的 ProcessResources 出现编码问题,我使用了 filteringCharset = 'UTF-8'。这个构建在我的桌面上成功了,但在 Travis CI 上失败了。我猜这是 Travis CI 的 Gradle 的问题。所以我尝试更新版本但找不到任何信息。这是Gradle版本的问题吗?如果是,我该怎么办?

Travis 构建错误:

FAILURE: Build failed with an exception.
* Where:
Build file '/home/travis/build/EntryPointKR/K-Security/build.gradle' line: 43
* What went wrong:
A problem occurred evaluating root project 'K-Security'.
> No such property: filteringCharset for class: org.gradle.language.jvm.tasks.ProcessResources_Decorated

完整的 travis 构建日志:https://travis-ci.org/EntryPointKR/K-Security/builds/201771722

.travis.yml:

language: java
sudo: false
jdk:
  - oraclejdk8
addons:
  apt:
    packages:
      - oracle-java8-installer

build.gradle中的问题代码

processResources {
    filteringCharset = 'UTF-8' // Here
    filter ReplaceTokens, tokens: [
            "version"   : project.version,
            "pluginName": rootProject.name,
            "mainClass" : "cloud.swiftnode.ksecurity.KSecurity",
            "author"    : "EntryPoint"
    ]
}

最佳答案

这很可能是由于您的 gradle 版本与 java 镜像中安装的 gradle 版本不匹配所致。 It was introduced in Gradle 2.14 。最简单的修复方法是使用 gradle 包装器在两个环境中强制执行相同的版本。

只需添加包装器任务:

task wrapper(type: Wrapper) {
    gradleVersion = '3.3'
}

应该可以在 before_install 中运行 gradlewrapper,或者简单地将 gradle-wrapper jar 与您的项目捆绑在一起。 Travis CI will detect gradle wrapper并使用 gradlew 而不是 gradle

如果您在本地计算机上使用 Windows,make sure you commit the gradlew script with executable flag .

关于java - Travis CI 上的 Gradle 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42245174/

相关文章:

java - for-集合中的每个子元素,Java

java - eclipse根据构造函数参数生成类变量getter setter

eclipse - Libgdx:Gradle导入 eclipse 只显示根文件夹而不是项目

android - Gradle脚本-在file.delete()之前完成等待操作

python - 在 Python 中使用 OpenSSL 1.0.2(在 Travis CI OSX 图像上)?

java - 我在这里做错了什么 : Android Socket Connection?

java - 如何解析无效(错误/格式不正确)的 XML?

java - Kotlin Back-Tick 在方法名称中转义 : How does it work?

python - [Python] 无法让 Travis CI 工作。路径问题

git - 如何在分离的 HEAD 状态下找到当前的 git 分支