为了不手动管理Maven和Gradle构建配置文件,我想让Gradle为多模块构建生成Maven POM。
到目前为止,这是有效的。你可以在下面找到
settings.gradle
rootProject.name = 'parent'
include 'module-a'
include 'module-b'
下面是
build.gradle
allprojects {
apply plugin: 'maven'
group = 'com.example.project'
version = '1.0-SNAPSHOT'
}
subprojects {
apply plugin: 'java'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
task createPom << {
pom {
project {
parent {
groupId project.group
artifactId rootProject.name
version project.version
}
}
}.writeTo("pom.xml")
}
}
task createPom << {
pom {
project {
packaging 'pom'
modules {
module 'module-a'
module 'modula-b'
}
}
}.writeTo("pom.xml")
}
问题是我必须手动声明
createPom
根项目的任务。另外,我需要两个专门的任务;一个用于根项目,另一个用于子项目。
我怎样才能让Gradle知道这些模块是什么?或者有没有一种方法可以通过编程确定子项目并将其添加为模块?此外,甚至有必要有两个不同的任务吗?