ken*_*984 8 java dependencies jar gradle build.gradle
我目前jar的build.gradle情况如下:
jar {
manifest {
attributes "Main-Class": "hoge.Main"
}
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
Run Code Online (Sandbox Code Playgroud)
并且运作良好。
但是,我收到了来自 Gradle 的消息(可能从 6 岁以上开始?)
这是实际的消息:
The compile configuration has been deprecated for dependency declaration. This will fail with an error in Gradle 7.0. Please use the implementation configuration instead.
Run Code Online (Sandbox Code Playgroud)
该部分configurations.compile已弃用。
我怎样才能更新它?
如果我变了
jar {
manifest {
attributes "Main-Class": "hoge.Main"
}
from configurations.implementation.collect { it.isDirectory() ? it : zipTree(it) }
}
Run Code Online (Sandbox Code Playgroud)
摇篮 说 > Resolving configuration 'implementation' directly is not allowed
对于其他人希望他们的摇篮配置升级到7.0或更高版本的格式,需要注意的是简单地更换compile与implementation或api可能会错误,如果你使用的java插件。您需要使用该java-library插件。文档。
确保在您的gradle.config替换中:
apply plugin: 'java'
Run Code Online (Sandbox Code Playgroud)
和:
apply plugin: 'java-library'
Run Code Online (Sandbox Code Playgroud)
您implementation用于非传递依赖项和传递依赖项api(如果依赖项由项目的依赖项直接使用)。
您需要根据您的情况替换compile为runtimeClasspath。
在以前的 Gradle 版本中,compile有太多的责任:
它已经被implementationfor 依赖声明取代,它也需要被某些东西取代以解决问题。
但是,在您的情况下,您很可能希望打包运行时依赖项而不是编译依赖项。因此,您应该使用runtimeClasspath作为要解决的配置。而不是compileClasspath哪个不包含任何runtimeOnly依赖项。
| 归档时间: |
|
| 查看次数: |
8115 次 |
| 最近记录: |