从另一个子项目复制Gradle依赖项而不会产生弃用警告

时间:2019-01-13 10:19:50

标签: gradle

在Gradle项目中,我有多个子项目。我需要将依赖关系从一个子项目的配置复制到另一个子项目的配置。我可以根据以下答案here改编为以下内容:

task copyDependencies(type: Copy) {
    from project(":sub").configurations.compile
    into "${buildDir}/libraries"
}

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

  

解决了:sub:compile配置,而没有以安全的方式访问项目。 ...该行为已被弃用,并计划在Gradle 6.0中删除。

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

1 个答案:

答案 0 :(得分:1)

警告似乎是,当构建并行运行时,跨越项目边界可能会导致问题。

执行此操作的正确方法是让Gradle知道声明 ;WITH cte AS (SELECT id, name, fruitid FROM (SELECT *, Cast('<X>' + Replace(F.fruit, ',', '</X><X>') + '</X>' AS XML) AS xmlfilter FROM users F)F1 CROSS apply (SELECT fdata.d.value('.', 'varchar(50)') AS FruitId FROM f1.xmlfilter.nodes('X') AS fdata(d)) O) SELECT * FROM cte C INNER JOIN fruit F ON F.id = Cast(C.fruitid AS INT) 任务的项目将需要项目copyDependencies的依赖项。

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

:sub

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

Relevant discussion在Gradle论坛上。

相关问题