使用Gradle构建复杂多项目

时间:2015-11-07 19:17:29

标签: java gradle build dependency-management

我有一个庞大的项目,是一组约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不包含它们(尽管编译配置从它们扩展))。

    < / LI>
  • 如何下​​载给定文件夹中的依赖项。

  • 如何一次检查所有子项目的依赖关系。

编辑:我刚发现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(依赖性检查)有关。

0 个答案:

没有答案