【问题标题】:Could not find method compile() for arguments in java在 java 中找不到参数的方法 compile()
【发布时间】:2021-08-14 15:42:11
【问题描述】:

谁能帮我解决这个问题

在类型为 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. 的对象上找不到参数 [project ':moqui-util'] 的方法 compile()。

【问题讨论】:

标签: java gradle


【解决方案1】:

如果您使用的是 Gradle 7.0+ 版,则从中删除编译依赖配置。您可能需要寻找 implementation 依赖配置来代替 compile。

PS:不要忘记重建你的 gradle 文件。

更多信息可以在我的另一个弃用答案中找到。

https://stackoverflow.com/a/67695126/8148637

【讨论】:

  • 我不完全理解你的答案,你能告诉我我应该在代码中做什么吗?
  • 在构建文件中的 dependencies {} 闭包中,您有一些编译依赖项,例如 'javax.cache','javax.servlet' 。将它们从编译依赖项替换为实现依赖项。换句话说,将所有此类依赖项开头的 compile 替换为单词 'implementation'
  • 您需要在更改后重新加载您的 gradle 构建文件。当您进行更改时,它将显示在编辑器的右上方。
  • @KnockingHeads 在插件{}闭包依赖而不是依赖{}闭包的情况下如何解决此问题?
【解决方案2】:

它看起来很简单,但我没有看到很多需要更改的示例。这是我必须做的:

像这样的任何东西,从改变

compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25'

implementation 'org.slf4j:slf4j-log4j12:1.7.25'

我还必须更改 mainClass 的声明方式

mainClassName = 'package.MainClass'

application {
mainClass = 'package.MainClass'

}

为此,我必须删除gradle 文件和文件夹,并执行gradle init 以重新创建构建配置和依赖项。 使用implementationruntimeOnlycompileOnly 等作为新的等价物

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-29
    • 2022-01-23
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多