0

我正在将 Checker Framework 添加到现有的 Java Gradle 构建中。我已经集成了 Checker 并提出了问题,这一切都很好。但是现在我已经添加了它,我的构建不再像以前那样生成 .jar 文件。

以前,我会在 .jar 获得一个 .jar build/libs/myproject.jar。现在我看到了build/checkerframeworkbuild/main但没有build/libs,也没有 .jar。

build.gradle的在下面。以前有人尝试过吗?有成功吗?

我想我也会接受一个显示如何在构建之外运行 Checker 的答案,例如gradle check使用 Checker 运行构建并gradle build生成 .jar。但如果可能的话,我真的更喜欢只有一个构建步骤。

谢谢!

plugins {
    id "org.checkerframework" version "0.5.18"
    id 'application'
}

apply plugin: 'org.checkerframework'

checkerFramework {
    checkers = [
        'org.checkerframework.checker.nullness.NullnessChecker',
        'org.checkerframework.checker.units.UnitsChecker'
    ]
}

repositories {
    jcenter()
}

java {
    sourceCompatibility = JavaVersion.VERSION_11
    targetCompatibility = JavaVersion.VERSION_11
}

jar {
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE

    // Embed all dependencies to create a "fat jar" as required for AWS deployment.
    // Exclude 3rd-party signing files to prevent security errors at runtime
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    } {
        exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
    }

    manifest {
        attributes('Main-Class': 'client.CliMain')
    }
}
4

1 回答 1

0

如果构建通过,则添加-processor不应影响是否生成.jar文件。(除非你通过-proc:only或类似的。)

如果构建失败,则 Gradle 不会构建 jar 文件。您说 Checker Framework 正在“引发问题”,因此可能构建失败。

于 2021-04-04T16:01:34.007 回答