对fileTree的“实现”而不是“编译”会干扰复制库任务

时间:2019-07-19 10:31:31

标签: gradle

我正在将项目迁移到Gradle。

我有一些通过compile fileTree(dir: "libs/$it", include: '*.jar')导入的本地部门

但是不推荐使用compile

但是如果我将其更改为implementation

然后我的任务将不复制任何内容(用runtime清除的文件除外):

task copyToLib(type: Copy) {
    from configurations.runtime
    into "$buildDir/output/lib"
}

configurations.runtime更改为.compileimplementation并没有帮助

这是怎么回事?

1 个答案:

答案 0 :(得分:2)

documentation on the Gradle Java plugin显示配置runtime已被弃用。它被runtimeOnly配置所取代,该配置就像名称中所说的,仅提供运行时相关性。但是,还有一个名为runtimeClasspath的配置,该配置扩展了配置runtimeOnlyruntimeimplementation

因此只需替换示例中的配置即可

task copyToLib(type: Copy) {
    from configurations.runtimeClasspath
    into "$buildDir/output/lib"
}