如何抑制有关已弃用 Gradle 功能的 gradle 警告?

How to suppress gradle warning about Deprecated Gradle features?

提问人:Paul Verest 提问时间:9/10/2021 最后编辑:Paul Verest 更新时间:2/1/2023 访问量:2916

问:

我正在使用最新的 Gradle v7.2

当我编译时,它给了我警告

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings

我检查了--warning-mode all,它只是关于jcenter弃用

> Configure project :
The RepositoryHandler.jcenter() method has been deprecated. This is scheduled to be removed in Gradle 8.0. JFrog announced JCenter's sunset in February 2021. Use mavenCentral() instead. Consult the upgrading guide for further information: https://docs.gradle.org/7.2/userguide/upgrading_version_6.html#jcenter_deprecation
        at build_akew6bhcr0m9glzogac5s3m6w$_run_closure1.doCall(/Users/paul.verest/Workspaces/Polkadot/bcd-java/build.gradle:10)
        (Run with --stacktrace to get the full stack trace of this deprecation warning.)

现在,我怎样才能让gradle忽略build.gradle中的一行(在这种情况下是用法,但可能是任何) 这样“使用了已弃用的 Gradle 功能”就会消失,
直到新功能被弃用或我的构建脚本被更改?
jcenter


是的,这个问题不是关于抑制代码的编译器输出,
而是关于 gradle 生成的文件。
.gradle

不使用,因为它可以隐藏和显示所有警告。--warning-mode

P.S. 正是这样,我有依赖关系,只在.jcenter

gradle groovy build.gradle suppress-warnings suppressmessage

评论

1赞 tim_yates 9/11/2021
jcenter 现在已经死了......为什么不直接将其从构建脚本中删除呢?
1赞 Jayan 9/11/2021
@tim_yates:JCert中存在的某些库(或版本)是否有可能在其他地方不可用?在这种情况下,用 mavenCentral 替换 jcenter 需要更多的工作。(我同意立即解决这个问题要便宜得多)
1赞 Jayan 9/11/2021
否 - 现有构建不应失败。JFrog 使存储库保持只读。所有使用它的构建将永远有效——jfrog.com/blog/...... (他们听取了社区的意见并改变了策略)
1赞 Paul Verest 9/11/2021
P.S. 正是这样,我有依赖关系,只依赖 jcenter。Bintray 始终为 403,JCenter 以只读模式工作
2赞 Jayan 9/14/2021
@tim_yates : 您可能正在从浏览器进行检查,该浏览器的处理方式有所不同。 工作正常 ;Gradle 构建也是如此。(这是 jfrog 的一个好策略,可以阻止用户,但仍然尊重所有现有的构建文件)curl -O https://jcenter.bintray.com/net/rubygrapefruit/ansi-control-sequence-util/0.2/ansi-control-sequence-util-0.2.jar

答:

3赞 Jayan 9/11/2021 #1

对不起 - 你可能不喜欢这个答案。

gradle (7.2) 中没有禁止特定弃用的选项。修复构建文件将更便宜且正确。

评论

0赞 Paul Verest 9/11/2021
我希望有一些类似的东西。@SuppressWarnings
0赞 Paul Verest 9/13/2021
投票赞成,但不接受任何答案,因为希望有或会有办法。
0赞 Ebraheem Alrabeea 1/13/2022 #2

替换 Gradle 文件中的以下存储库

jcenter()

跟:

mavenCentral() 

艺术

gradlePluginPortal()

这将假设 maven 存储库中存在所需的依赖项,您必须通过进行新构建来检查。

目前,存储库已关闭。jcentral()

0赞 eskatos 2/1/2023 #3

您可以自己配置 jcenter 存储库,而无需使用已弃用的帮助程序:

repositories {
    maven {
        name = "jcenter"
        url = uri("https://jcenter.bintray.com/")
    }
}

但考虑到 jcenter 的当前状态(逐步淘汰、定期中断),摆脱它会处于更好的境地。

在公共中央存储库中,Maven Central 是目前唯一明智的选择。

请注意,目前代理 jcenter,并且会使您的构建对 jcenter 中断也很敏感。gradlePluginPortal()

如果要限制这些对生成的影响,则应利用存储库内容筛选。例如:

repositories {
    maven {
        name = "jcenter"
        url = uri("https://jcenter.bintray.com/")
        content {
            includeGroup("my.only.dependency.from.jcenter")
        }
    }
    mavenCentral()
}

查看 https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:repository-content-filtering