如何使用Gradle为多模块构建生成Maven POM?

时间:2018-11-29 21:49:21

标签: java maven gradle pom.xml multi-project

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

0 个答案:

没有答案