首页 > 解决方案 > 如何使用 gradle 设置容易出错(出现各种错误)

问题描述

我正在尝试使用 gradle 设置容易出错的地方,但是我尝试过的一切都给了我一些错误:

为了测试,我使用 gradle 设置了一个简单的 hello world java 程序,它编译得很好,不会出错。然后我阅读:从安装指南中找到的https://github.com/tbroyer/gradle-errorprone-plugin 并在 build.gradle 中尝试了这个:

plugins {
    id 'java'
    id("net.ltgt.errorprone") version "2.3.3"
}

group 'test'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    errorprone("com.google.errorprone:error_prone_core:2.3.3")

}

这给了我这个错误:

Plugin [id: 'net.ltgt.errorprone', version: '2.3.3'] was not found in any of the following sources:

Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
Plugin Repositories (could not resolve plugin artifact 'net.ltgt.errorprone:net.ltgt.errorprone.gradle.plugin:2.3.3')
  Searched in the following repositories:
    Gradle Central Plugin Repository

我改为2.3.3latest.version得到了同样的错误

然后我找到了这个https://plugins.gradle.org/plugin/net.ltgt.errorprone并尝试了版本号 0.8.1。据我所知,我需要能够使用 java11 所以不能使用 gradle 4.x。

此外,如果有人知道我可以查看的使用容易出错的 gradle 的实际存储库,我将非常感激:)

我的 gradle 包装器属性设置为使用 gradle 版本 5.4.1

标签: javagradleerrorprone

解决方案


解决如下

  1. 将 Gradle 插件添加到 build.gradle 文件
plugins {
    id("net.ltgt.errorprone") version "1.1.0"
}

发布版本

  1. error_prone_core在 build.gradle 文件中添加依赖项
dependencies {
    errorprone("com.google.errorprone:error_prone_core:2.3.3")
}

发布
3. 构建项目,这将添加errorprone配置命名空间
4. 如果您使用的是 java-8,还需要添加额外的依赖项。

errorproneJavac("com.google.errorprone:javac:9+181-r4173-1")

以及步骤 2 中的依赖关系。
5.您可以通过任务自定义/启用/禁用它

tasks.withType(JavaCompile).configureEach {
    options.errorprone.disableWarningsInGeneratedCode = true
    options.errorprone.enabled = false // change it to true to enable
}

注意:正如@jb-nizet 的 OP 评论中提到的,gralde 插件和 error_prone_core 具有不同的版本和独立的发布周期。

我的 build.gradle 文件

buildscript {
    ext{
        errorproneVersion = '2.3.3'
    }
    repositories {
        mavenLocal()
        mavenCentral()
    }
}

plugins {
    id "java"
    id("net.ltgt.errorprone") version "1.1.0"
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    errorprone("com.google.errorprone:error_prone_core:$errorproneVersion")
    errorproneJavac("com.google.errorprone:javac:9+181-r4173-1")
}

tasks.withType(JavaCompile).configureEach {
    options.errorprone.disableWarningsInGeneratedCode = true
    options.errorprone.enabled = false
}

参考

Github 容易出错


推荐阅读