繁体   English   中英

如何在Maven部署程序插件的Gradle中使用pom文件?

[英]How to use a pom file in the Maven deployer plugin for Gradle?

我需要能够在本地生成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变量并在两个任务中都使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM