Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Gradle的Maven deployer插件中使用pom文件?_Java_Maven_Gradle_Build.gradle_Gradle Plugin - Fatal编程技术网

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

Java 如何在Gradle的Maven deployer插件中使用pom文件?,java,maven,gradle,build.gradle,gradle-plugin,Java,Maven,Gradle,Build.gradle,Gradle Plugin,我需要能够在本地生成pom文件,并将项目部署到sonatype。 我是这样做的: task createPom { doLast { pom.project { groupId = "com.example" //... }.writeTo("pom.xml") } } uploadArchives { repositories { mavenDeployer {

我需要能够在本地生成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"
                //...
            }

        }
    }
}
正如您所注意到的,它不遵循干燥原则,因为我正在两次编写相同的pom文件。如果我需要在POM文件中添加或删除任何字段,我需要在两个位置都删除它。
我有个主意。我们可以说,
uploadArchives
任务依赖于
createPom
任务,就像这样
uploadArchives(dependsOn:createPom)
。现在我们可以生成一个POM文件,然后在使用
mavenDeployer
时读取。但是如何告诉
mavenDeployer
从文件中读取pom而不生成默认pom文件呢?或者,如果可以生成全局pom变量并在两个任务中使用它