Gradle 7.4 失败,Applet 已被弃用并标记为删除

Gradle 7.4 fails with Applet been deprecated and marked for removal

Eclipse 挂在我身上,所以我恢复到 gradle 构建。 Gradle 类 失败并显示以下错误消息。

我在项目目录中确实有一个 gradle.properties 文件,其中包含:“org.gradle.warning.mode=none”。 Eclipse 通常可以很好地运行代码和测试。

我不关心在任何地方收到警告。我确实想阻止构建失败

下面的构建文件有很多我现在没有使用的额外内容。

编辑 1:添加 @SuppressWarnings("removal") 似乎有效。

C:\Users\raz\git\code\src\simplegui\InsetsDemo.java:4: warning: [removal] Applet in java.appl
et has been deprecated and marked for removal
public class InsetsDemo extends Applet {
                                ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

构建文件:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'org.hidetake:gradle-ssh-plugin:1.1.2'
  }
}
plugins {
    id 'java'
    id 'checkstyle'
    id 'distribution'
    id 'application'
}
repositories {
    mavenCentral()
}
sourceSets {
    main {
        main.java.srcDirs = ["src"]
        main.resources.srcDirs = ["resources"]
    }
    test {
        test.java.srcDirs = ["tst"] // removed slow/ as it was very.
    }
}
dependencies {
    testImplementation 'junit:junit:4.13.2'
    }
jar {
    manifest {
        attributes 'Main-Class': MyStuff.main
    }
}
run {
    standardInput = System.in
}
targetCompatibility = "16"  
sourceCompatibility = "16"
version = '0.1' 
mainClassName = MyStuff.main // for application plugin
class MyStuff {
    public static final String main="com.tayek.utilities.Dispatcher";
}

您的构建真的因为弃用警告而失败了吗?正如奥利弗在评论中指出的那样,只有当您 运行 javac 带有 -Werror 选项时才会出现这种情况。但即使您使用了那个选项,消息看起来也会有所不同——可能像这样:

error: warnings found and -Werror specified
1 error
1 warning

据我所知,这个弃用警告似乎是在转移注意力。只是为了确定:您的构建是否完全失败?当您 运行 ./gradlew classes 时,Gradle 是否报告了类似以下的内容……

> Compilation failed; see the compiler error output for details.

…接着是“BUILD FAILED”?

如果 Gradle 为该命令报告“BUILD SUCCESSFUL”,则警告不是问题。如果在 运行 执行其他任务时您的构建仍然失败(例如,作为 ./gradlew build 的一部分),那么日志中 应该 是其他错误。如果没有,则尝试添加 --stacktrace 选项以希望获得有关实际错误的更多详细信息。


就是说,如果您只想(完全)摆脱该警告,那么根据 this SO answer,您唯一的选择是向 [=18= 添加一个 @SuppressWarnings("deprecation") 注释] class。否则警告是“Java 语言规范强制要求的。”