代码之家  ›  专栏  ›  技术社区  ›  mike

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

  •  1
  • mike  · 技术社区  · 7 年前

    为了不手动管理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 回复  |  直到 7 年前