Lau*_*ent 6 sonatype gradle maven maven-central maven-publish
我有一个 Java 项目,它使用 Gradle 来构建和打包。我的目的是创建发布到 Maven Central 的工件。
第一步,我配置了 Gradle 项目,如文档中的以下示例所示:
https://docs.gradle.org/current/userguide/publishing_maven.html#publishing_maven:complete_example
当我运行时gradle publishToMavenLocal,我会在本地存储库中安装以下文件:
maven-metadata-local.xml
my-library-1.0.2-SNAPSHOT.jar
my-library-1.0.2-SNAPSHOT.jar.asc
my-library-1.0.2-SNAPSHOT-javadoc.jar
my-library-1.0。 2-SNAPSHOT-javadoc.jar.asc
my-library-1.0.2-SNAPSHOT.pom
my-library-1.0.2-SNAPSHOT.pom.asc
my-library-1.0.2-SNAPSHOT-sources.jar
my-library- 1.0.2-SNAPSHOT-sources.jar.asc
文件一切正常。我遇到的唯一问题是未生成校验和文件(md5 和 sha1)。然而,校验和文件是通过 OSS Sonatype 在 Maven Central 上部署工件的必要条件。
如何生成丢失的校验和文件?似乎maven-publish或签名插件没有用于此目的的选项?怎么了?
我找到的解决方案是将阴影与以下命令一起使用ant.checksum:
tasks.withType(Jar) { task ->
task.doLast {
ant.checksum algorithm: 'md5', file: it.archivePath
ant.checksum algorithm: 'sha1', file: it.archivePath
ant.checksum algorithm: 'sha-256', file: it.archivePath, fileext: '.sha256'
ant.checksum algorithm: 'sha-512', file: it.archivePath, fileext: '.sha512'
}
}
Run Code Online (Sandbox Code Playgroud)
调用gradle publishShadowPublicationToMavenLocal将根据需要生成签名,但不会将它们发布到~/.m2.
起初我认为这些签名应该是自动的,所以我打开https://github.com/johnrengelman/shadow/issues/718进行讨论。
| 归档时间: |
|
| 查看次数: |
977 次 |
| 最近记录: |