如何在Gradle的Maven deployer插件中使用pom文件?

时间:2017-10-06 11:52:45

标签: java maven gradle build.gradle gradle-plugin

我需要能够在本地生成pom文件并将项目部署到sonatype。

以下是我的表现:

task createPom {
    doLast {
        pom.project {
            groupId = "com.example"
            //...
        }.writeTo("pom.xml")
    }
}

uploadArchives {
    repositories {
        mavenDeployer {
            beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }

            repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
                authentication(userName: ossrhUsername, password: ossrhPassword)
            }

            snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
                authentication(userName: ossrhUsername, password: ossrhPassword)
            }

            pom.project {
                groupId = "com.example"
                //...
            }

        }
    }
}

正如您所注意到的那样,它不符合DRY原则,因为我正在写两次相同的pom文件。如果我需要添加或删除POM文件中的任何字段,我需要在两个地方删除它 我有个主意。我们可以说uploadArchives任务取决于此createPom uploadArchives (dependsOn: createPom)任务。现在我们可以生成一个POM文件,然后在使用mavenDeployer时读取。但是如何告诉mavenDeployer从文件中读取pom而不生成默认的pom文件?或者,如果可以生成全局pom变量并在两个任务中使用它。

0 个答案:

没有答案