嗨,我有一个java项目,其中包含一个子模块,这是一个gradle插件。我想把这个模块发布到maven central。
我在我的build.gradle中使用了这两个插件
plugins {
id 'java-gradle-plugin'
id 'maven-publish'
}我的publishing代码块看起来像这样:
publishing {
publications {
javaLibrary(MavenPublication) {
from components.java
artifact sourcesJar
artifact javadocJar
artifactId = project.archivesBaseName
pom {
name = artifactId
description = "..."
url =
licenses {
license {
}
}
developers {
...
}
scm {
...
}
issueManagement {
...
}
ciManagement {
...
}
}
}
}
repositories { maven { url = "some local repo" } }
}我注意到当我构建这个模块时,生成的pom-default.xml是我所期望的,但是当我运行gradle publishToMavenLocal并手动检查.m2文件夹中的pom.xml文件时,所有像name description licenses这样的元数据都消失了!
我还注意到在.m2文件夹中有两个工件与这个插件相关,我认为它与https://docs.gradle.org/current/userguide/plugins.html#sec:plugin_markers有些关系,但我不完全理解它的含义。如上所述,这两个工件的pom都缺少pom元数据。
有没有gradle专家可以帮我:如何将元数据保存在已发布的pom中?
发布于 2021-05-05 09:56:50
您不需要手动定义插件子模块的MavenPublication。java-gradle-plugin对maven-publish插件的应用程序作出反应,并自动配置/创建插件工件的发布。参见this行。
对于生成的(2)个工件,您是正确的。一个是插件标记(单个pom.xml),另一个是实际的插件JAR工件。
至于POM定制,Gradle似乎提供了它自己的POM,而不管您定义了什么POM定制:https://github.com/gradle/gradle/issues/17022
https://stackoverflow.com/questions/67393965
复制相似问题