Gradle 从另一个子项目复制渐变依赖项,而不显示弃用警告

Gradle 从另一个子项目复制渐变依赖项,而不显示弃用警告,gradle,Gradle,在Gradle项目中,我有多个子项目。我需要将依赖项从一个子项目的配置复制到另一个子项目的配置。我可以通过以下方法实现这一点,并根据此答案进行改编: 不幸的是,在Gradle 5.1中,这会生成以下弃用警告(为简洁起见,已截断): configuration:sub:compile在没有以安全方式访问项目的情况下被解析。。。此行为已被弃用,并计划在Gradle 6.0中删除 对于Gradle 5.1及更高版本,现在最好的方法是什么?警告显示,当构建并行运行时,跨越项目边界可能会导致问题 正确的方

在Gradle项目中,我有多个子项目。我需要将依赖项从一个子项目的配置复制到另一个子项目的配置。我可以通过以下方法实现这一点,并根据此答案进行改编:

不幸的是,在Gradle 5.1中,这会生成以下弃用警告(为简洁起见,已截断):

configuration:sub:compile在没有以安全方式访问项目的情况下被解析。。。此行为已被弃用,并计划在Gradle 6.0中删除


对于Gradle 5.1及更高版本,现在最好的方法是什么?

警告显示,当构建并行运行时,跨越项目边界可能会导致问题

正确的方法是让Gradle知道声明
copyDependencies
任务的项目将需要项目的依赖项

您可以通过执行以下操作来实现这一点:

configurations {
    dependenciesToCopy
}
dependencies {
    dependenciesToCopy project(':sub')
}
task copyDependencies(type: Copy) {
    from configurations.dependenciesToCopy
    into "${buildDir}/libraries"
}
这将导致Gradle在您的项目和
子项目的依赖项解析之间正确创建执行依赖项


在Gradle论坛上。

谢谢,这是一个很好的解决方案。我认为
from
行应该读取configurations.dependenciestopy
中的
,而不仅仅是dependenciestopy
中的
。如果您想更新您的答案,我会将其标记为已接受的解决方案。
configurations {
    dependenciesToCopy
}
dependencies {
    dependenciesToCopy project(':sub')
}
task copyDependencies(type: Copy) {
    from configurations.dependenciesToCopy
    into "${buildDir}/libraries"
}