无法从密钥环文件 secring.gpg 中检索密钥,因为它不存在
Posted
技术标签:
【中文标题】无法从密钥环文件 secring.gpg 中检索密钥,因为它不存在【英文标题】:Unable to retrieve secret key from key ring file secring.gpg as it does not exist 【发布时间】:2019-10-10 22:25:00 【问题描述】:我想使用maven-publish
和signing
将我的项目发布到maven。问题是当我尝试发布时:gradle publish
我收到此错误:
* What went wrong: Execution failed for task ':project:signMavenJavaPublication'.
> Unable to retrieve secret key from key ring file '/Users/nick/.gnupg/secring.gpg ' as it does not exist
在发布之前,我生成如下密钥:
-
gpg --gen-key
gpg --export-secret-keys > ~/.gnupg/secring.gpg
然后我改变我的~/.gradle.gradle.properties
:
signing.keyId=ID
signing.password=PASS
signing.secretKeyRingFile=/Users/nick/.gnupg/secring.gpg
我的 gradle.build 如下所示:
subprojects
if (it.name != 'exclusion')
apply plugin: 'java-library'
apply plugin: 'maven-publish'
apply plugin: 'signing'
dependencies
...
test
useJUnitPlatform()
testLogging
events "passed", "skipped", "failed"
testClassesDirs = sourceSets.test.output
classpath = sourceSets.test.runtimeClasspath
task sourcesJar(type: Jar)
from sourceSets.main.allJava
archiveClassifier = 'sources'
task javadocJar(type: Jar)
from javadoc
archiveClassifier = 'javadoc'
javadoc
if(JavaVersion.current().isJava9Compatible())
options.addBooleanOption('html5', true)
if (it.name != 'exclusion')
publishing
publications
mavenJava(MavenPublication)
artifactId = it.name
from components.java
artifact sourcesJar
artifact javadocJar
versionMapping
usage('java-api')
fromResolutionOf('runtimeClasspath')
usage('java-runtime')
fromResolutionResult()
pom
...
licenses
...
developers
...
scm
...
repositories
maven
...
if (project.hasProperty("signing.keyId"))
signing
sign publishing.publications.mavenJava
我做错了什么?
【问题讨论】:
【参考方案1】:我通过生成不是secring.gpg
而是secring.kbx
解决了这个问题:
gpg --export-secret-keys -o ~/secring.kbx
我不确定这是不是正确的方法,但至少 gradle 插件终于可以工作了。
【讨论】:
以上是关于无法从密钥环文件 secring.gpg 中检索密钥,因为它不存在的主要内容,如果未能解决你的问题,请参考以下文章
gpg: no default secret key: 私钥不可用
Facebook iOS 上传视频“无法从访问令牌中检索会话密钥。”