我正在使用Gradle发布机制,该机制仍在使用publishing
DSL进行孵化。
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
pom.withXml {
def parentNode = asNode().appendNode('parent')
parentNode.appendNode('groupId', 'org.springframework.boot')
parentNode.appendNode('artifactId', 'spring-boot-starter-parent')
parentNode.appendNode('version', springBootVersion)
}
// BEGIN sourcejar
artifact sourceJar {
classifier "sources"
}
// END sourcejar
artifact sharedTestJar {
classifier "sharedtest"
}
}
}
这基本上有效,但是当我添加分类器时,重新打包的工件不再被部署。那么我需要参考哪些配置来注册重新打包的工件以供发布?
bootRepackage {
classifier = 'exec'
}
答案 0 :(得分:2)
您必须将bootRepackage
任务创建的jar文件添加为要发布的其他工件。不幸的是,bootRepackage
任务似乎没有将此作为属性公开。
artifact(file("$buildDir/$project.name-$project.version-${bootRepackage.classifier}.jar")) {
classifier 'exec'
}
答案 1 :(得分:0)
您可以获取'sourcesJar'任务,以便使用JavaPluginConvention
附加要发布的源jar工件。要实现这一目标需要很长的时间,但是您最终没有对工件文件名进行硬编码。
publishing.publications.create('bootJava', MavenPublication).with {
...
artifact project.tasks.getByName(
project.getConvention().getPlugin(JavaPluginConvention)
.getSourceSets().getByName(SourceSet.MAIN_SOURCE_SET_NAME)
.getSourcesJarTaskName())
}