繁体   English   中英

Gradle-多个项目-平面目录结构都在同一级别

[英]Gradle - Multi projects - flat directory structure all at same level

Gradle多个独立的Java项目。 平面文件夹结构均处于同一级别。

我正在尝试创建像这样的多gradle Java项目。

  • Child1-不依赖任何内容(数据层)
  • Child2-仅取决于Child1(业务层)
  • 父级-仅取决于Child2(服务层)

我能够使其仅与以下配置一起使用。 我不确定这是否是达到上述要求的正确方法。

Child2-settings.gradle

include ':Child1'
project(':Child1').projectDir = new File(settingsDir, "../Child1"); 

Child2-build.gradle

dependencies {
    compile project(':Child1')
}

父级-settings.gradle

include ':Child1', ':Child2'
project(':Child1').projectDir = new File(settingsDir, "../Child1");
project(':Child2').projectDir = new File(settingsDir, "../Child2");

注意:-我不知道为什么要在这里定义Child1的细节? 因为Parent只需要Child2依赖项。 如果我没有像上面那样配置,它将无法正常工作。

父-build.gradle

dependencies {
    compile project(':Child2')
}

在此处输入图片说明

在多模块项目中,子项目的目录是父文件夹中的子文件夹。 这是按照惯例。 如果按照该约定对齐文件夹,则生成构建文件所需的信息较少。

下面是这个问题的一个例子。

myproject
    |
|-- ear
    |-- build.gradle
    |-- ...
|-- core
    |-- build.gradle
    |-- ...
|-- web
    |-- build.gradle
    |-- include core project as dependency for this project
    |-- ...
|-- settings.gradle // has include "ear", "core", "web"

由于您的结构不在此约定中,因此您需要明确说明子代的位置。 父项和child1之间的关系是直接的,这与依赖性库和该库可能具有的其他依赖性的关系不同。 如果child1只是child2的依赖项,而不是parent2的子项,那么您将不必指出chil1的文件夹。 但是这种情况是1)child1是父级的子级,而2)您未对多模块使用标准目录布局。 所以现在您必须告诉Gradle child1在父级的构建脚本中的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM