我已经编写了一个gradle任务,该任务将一个自定义pom写入“build/libs/pom.xml”
我想发布上面的自定义pom.xml,所以我定义了:
def pomXml = artifacts.add('archives', file("$buildDir/libs/pom.xml")) {
builtBy('writePoms') // writePoms is my custom task to create custom pom.xml
}
publishing {
publications {
maven(MavenPublication) {
artifact pomXml
artifactId "myartifact"
groupId 'com.xyz'
version project.version
}
}
repositories {
// Task for manually publishing the maven image. When CI works, setup CI_TOKEN auth.
maven {
url <url>
name "GitLab"
credentials(HttpHeaderCredentials) {
name = System.getenv("CI_JOB_TOKEN") ? "Job-Token" : "Private-Token"
value = System.getenv("CI_JOB_TOKEN") ? System.getenv("CI_JOB_TOKEN") : gitLabPrivateToken
}
authentication {
header(HttpHeaderAuthentication)
}
}
}
当我运行./gradlew publish
时,它从“build/publications/maven/pom-default.xml”而不是“build/libs/pom.xml”发布pom
有人能帮助我如何实现它吗?
1条答案
按热度按时间yeotifhr1#
我也遇到过类似的问题(将多个外部存储库与它们自己的构建系统聚合构建,然后将这些构建的结果发布到一个本地工件)。
我能够通过
withXml
有效地将为“工件”出版物生成的POM替换为外部POM的内容:这使得
<xml ...>
和<project ...>
节点保持不变(对于我的情况是可以接受的)。