使用 Gradle maven-publish 和签名插件时缺少校验和文件

     2023-02-18     266

关键词:

【中文标题】使用 Gradle maven-publish 和签名插件时缺少校验和文件【英文标题】:Missing checksum files when using Gradle maven-publish and signing plugins 【发布时间】:2019-11-13 14:11:09 【问题描述】:

我有一个使用 Gradle 构建和打包的 Java 项目。我的目的是创建发布到 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-publishsigning 插件没有用于此目的的选项?怎么了?

【问题讨论】:

【参考方案1】:

我找到的解决方案是使用shadow 和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'
    

调用gradle publishShadowPublicationToMavenLocal 将根据需要生成签名,但不会将它们发布到~/.m2

起初我以为那些签名应该是自动的,所以我打开https://github.com/johnrengelman/shadow/issues/718讨论。

【讨论】:

gradle部署

...需要签署已发布的POM文件使用Maven插件发布Gradle默认提供maven-publish插件。它用于发布gradle脚本。看看下面的代码。applyplugin:‘java‘applyplugin:‘maven-publish‘publishing{publications{maven 查看详情

Gradle maven-publish 不构建独立的 spring-boot 应用程序

】Gradlemaven-publish不构建独立的spring-boot应用程序【英文标题】:Gradlemaven-publishdoesnotbuildstandalonespring-bootapplication【发布时间】:2014-11-3011:26:57【问题描述】:当我使用gradlebuild构建一个spring-boot应用程序(到一个独立的jar)时,... 查看详情

Gradle with maven-publish:如何自动版本化并将目录中的非 gradle jar 发布到 Artifactory

】Gradlewithmaven-publish:如何自动版本化并将目录中的非gradlejar发布到Artifactory【英文标题】:Gradlewithmaven-publish:howtoautoversionandpublishnon-gradlejarsinadirectorytoArtifactory【发布时间】:2014-07-0817:31:28【问题描述】:作为从ant迁移到gradle的... 查看详情

如何使用旧的 maven 插件在 gradle 中的本地和远程 repo 之间切换?

...布时间】:2016-07-1322:38:23【问题描述】:我没有使用新的maven-publish插件,它看起来很棒并且非常适合这个用例,因为我一直在阅读没有人可以让jar的签名工作(尽管我愿意接受解释的答案以及我还没有找到 查看详情

使用 Gradle 将文件上传到 Artifactory,无需 maven 发布

...是否可以使用Gradle将文件上传到Artifactory存储库而不使用maven-publish插件?我要做的就是将任何文件上传到特定的存储库位置。这里是发布sn-p:publishi 查看详情

gradle7.0及以上使用jitpack发布仓库教程

参考技术A最近在使用jitpack发布仓库时发现旧版的发布插件已经无法使用了,于是我研究了maven-publish。因为记性一般,所以在本文记录一下使用方法。提交一次,然后执行gitupdate-index--chmod=+xgradlewhttps://gitee.com/liuxiaoliu66/jiuwo 查看详情

pluginwithid‘maven‘notfoundandroidstudio|gradle|插件开发(代码片段)

...及以后的版本中maven插件已经被移除了,改为使用"maven-publish"解决办法:applyplugin:'maven'改为applyplugin:'maven-publish'uploadArchives需要改为新的写法publishing:旧:uploadArchivesrepositories.mavenDeployerpom.groupId&... 查看详情

使用 gradle 发布到 maven 时删除附加到工件名称的默认 date.time

...布时间】:2016-11-2215:01:01【问题描述】:我正在使用带有maven-publish插件的gradle将工件发布到我们的本地maven存储库。我的build.gradle看起来 查看详情

安卓上传aar到jitpack仓库使用和示例(代码片段)

...加mavenurl'https://jitpack.io'./jplib/build.gradle中增加id'maven-publish'同时增加afterEvaluate字段所有内容,参考build.gradleafterEvaluatepublishingpublications//CreatesaMavenpublicationcalled" 查看详情

linux下nexus3私服配置及gradle配置使用

...成了!!!我们使用两种方式配置(1:maven方式 ,2:maven-publish方式)首先我们创建一个测试项目,并创建一个libaray在我们项目的根目录的build.gradle中配置刚刚建立的仓库然后在gradle.properties文件中配置我们的gradle(此处配置信... 查看详情

gradle如何打包springboot可执行jar

如何在Gradle中配置一个项目可以打包为SpringBoot可执行Jar?你首先需要添加到org.springframework.boot到插件中:例如下面的代码:plugins{id‘maven-publish‘id"org.asciidoctor.convert"version"2.3.0"id‘org.springframework.boot‘version‘2.1.4.RELEASE‘} 查看详情

androidstudio使用mavenpush插件上传私有maven-已成功使用到项目中(代码片段)

gradle任务下面是放在gradle配置里面比如我的项目model是apm那么就把下面的代码放到apm的gradle下面pluginsid'com.android.library'id'kotlin-android'id'maven-publish'taskgenerateSourcesJar(type:Jar)fromandroid.source 查看详情

gradlespringbootmavenpublish--发布只包含依赖关系和约束,不包含版本。

我在Gradle中使用maven-publish插件来发布我的SpringBoot应用程序jar。我运行了通常的任务。./gradlewartifactorypublish.然而,出现了以下错误,我可以理解其含义。>Task:assembleArtifact>Task:application-jar:compileJavaUP-TO-DATE>Task:application-j 查看详情

使用 gradlew 和 gradle 的区别

】使用gradlew和gradle的区别【英文标题】:Differencebetweenusinggradlewandgradle【发布时间】:2017-01-3008:01:26【问题描述】:使用gradlew和gradle有什么区别或者它们是一样的吗?【问题讨论】:【参考方案1】:不同之处在于./gradlew表明您... 查看详情

在 Scala 和 Gradle 中使用 AndroidAnnotations

】在Scala和Gradle中使用AndroidAnnotations【英文标题】:UsingAndroidAnnotationswithScalaandGradle【发布时间】:2011-11-1905:18:20【问题描述】:是否可以将AndroidAnnotations与Scala编程语言和Gradle构建系统一起使用?当我尝试将AndroidAnnotations集成到... 查看详情

jitpack发布一个你自己的android依赖库(代码片段)

...不细说了。配置Gradletoastfree模块下的build.gradle文件中添加maven-publish插件pluginsid'com.android.library'id'maven-publish'添加上传方法(官方建议)dependenciesimplementationfileTree(dir:'libs',include:['*.jar'])...afterEvaluate/... 查看详情

使用 Gradle 仅编译时依赖和 ProGuard

】使用Gradle仅编译时依赖和ProGuard【英文标题】:CompiletimeonlydependencyandProGuardusingGradle【发布时间】:2014-10-0707:43:47【问题描述】:我正在使用Gradle构建一个Android库,并且我只有编译时依赖项。我使用的是Gradle0.9+,所以如果我这... 查看详情

如何在androidstudio中查看当前使用的gradle版本和gradle插件版本

....build:gradle:1.2.3'这就是版本啊。查看gradle的版本,如果使用的本地gradle在,androidstudio的配置中看,如果不是,在项目的gradle/wrapper目录下面有个gradle-wrapper.properties中有如下内容:distributionurl=https\://services.gradle.org/distributions... 查看详情