当您来自Maven背景时,很可能已经习惯了父pom结构。
现在,在进行gradle时,情况有所不同。
想象一下有一个包含接口和各种其他实现的项目的场景。
这将是我们的项目结构。
multi-project-gradle
-- specification
-- core
-- implementation-a
-- implementation-b
规范项目包含接口,实现将基于这些接口。 核心项目将包含需要在实现之间共享的功能。
下一步是在multi-project-gradle中创建每个项目。
每个项目实际上都是带有builde.gradle文件的目录。
plugins {
id 'java'
}
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
完成后,您需要在父项目和子项目之间进行链接。
为此,您可以创建multi-project-gradle / settings.gradle并包含其他项目。
rootProject.name = 'com.gkatzioura'
include 'specification'
include 'core'
include 'implementation-a'
include 'implementation- b'
现在,如果为每个子项目都设置了build.gradle文件,那么您刚刚意识到,随处都包含了junit依赖项和mavencentral存储库。
使用多项目构建的主要好处之一是消除重复。
为此,我们将创建multi-project-gradle / build.gradle文件,在其中添加junit依赖项和maven中央引用。
subprojects {
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
}
现在,我们可以将依赖项添加到每个项目,甚至可以指定子项目所需的依赖项。
例如核心项目使用规范项目
dependencies {
compile project(':specification')
}
每个实施项目都使用核心项目
dependencies {
compile project(':core')
}
您可以在github上找到该项目。
翻译自: https://www.javacodegeeks.com/2018/07/gradle-parent-pom-structure.html