我有一个庞大的项目,是一组约40个子项目。它使用Ant脚本构建。
在每个子项目中,我都有一些库依赖项,分成一组文件夹(比方说:' lib1',' lib2'等等)。 这些图书馆存在很大的问题。
所以,我的团队决定采用更现代化的系统。我们决定继续Gradle。此时,我们将使用Gradle执行的唯一事情是依赖关系管理。
lib集(' lib1',' lib2'等)将在发布阶段将它们中的每一个放入不同的文件夹中。其中一些将不会被分发(用于编译)。
到目前为止的结构是这样的:
Root project
|- settings.gradle
|- project1
| |- build.gradle
|- project2
| |- build.gradle
...
根项目仅包括include ':project1'
之类的子项目,依此类推。
我们现在面临两个主要挑战:
根据依赖项类型下载不同文件夹中的项目依赖项,并检查是否存在依赖项冲突。
我们假定(但不确定)我们必须声明一些配置,例如:
configurations{
lib1
lib2
compile.extendsFrom(lib1, lib2)
}
为了清楚起见,我想在dist/lib1
这样的文件夹中下载每个lib集。 Ant脚本将继续收集这些库并将它们复制到dest文件夹中。
所以,仍然存在以下问题:
如何声明依赖项配置(上述格式似乎不起作用,因为compileJava
不包含它们(尽管编译配置从它们扩展))。
如何下载给定文件夹中的依赖项。
如何一次检查所有子项目的依赖关系。
编辑:我刚发现this question回答了问题1和2.但是,当我执行此任务时:
task copyWebinf( type: Copy ) {
into "$buildDir/libs/WEB-INF"
from configurations.webinf
}
我注意到我有一些我怀疑是重复的库:
-rw-rw-r-- 1 thiago thiago 93395 Nov 7 18:00 xpp3-1.1.3.3.jar
-rw-rw-r-- 1 thiago thiago 24956 Nov 7 18:00 xpp3_min-1.1.4c.jar
和
-rw-rw-r-- 1 thiago thiago 246867 Nov 7 18:00 xstream-1.1.2.jar
-rw-rw-r-- 1 thiago thiago 411090 Nov 7 18:00 xstream-1.3.jar
这些重复项可能与我的问题3(依赖性检查)有关。