如何解决Gradle 如何将 gradle-plugin 发布到 maven central
嗨,我有一个 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
并手动检查 pom.xml
中的 .m2
文件时文件夹,所有像 name
description
licenses
的元数据都不见了!
我还注意到在 .m2
文件夹中有 2 个工件与这个插件相关,我认为它与 https://docs.gradle.org/current/userguide/plugins.html#sec:plugin_markers 有点相关,但我不完全理解其含义。如上所述,这两个工件的 pom 都缺少 pom 元数据。
一些 gradle 专家可以帮助我吗:如何在发布的 pom 中保留元数据?
解决方法
您不需要为您的插件子模块手动定义 MavenPublication
。 java-gradle-plugin
对 maven-publish
插件的应用做出反应,并自动为插件工件配置/创建发布。请参阅 this 行。
您对产生的 (2) 个工件是正确的。一个是插件标记(单个 pom.xml
),另一个是实际的插件 JAR 工件。
至于 POM 定制,Gradle 似乎提供了自己的 POM,而不管您定义了任何 POM 定制:https://github.com/gradle/gradle/issues/17022
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。