为了不手动管理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找出模块是什么?还是有办法以编程方式确定子项目并将其添加为模块?此外,甚至有必要执行两个不同的任务吗?