SBT 项目发布到 Maven Central

SBT Project Publish to Maven Central

我正在 GitHub 中将我的项目作为 jar 文件发布到 Maven central nexus repo,并且我按照 SBT 文档页面中提到的所有步骤进行操作!

https://www.scala-sbt.org/release/docs/Using-Sonatype.html

但现在当我 运行

sbt publishSigned

针对我的项目的命令,出现以下错误:

[info] Done packaging.
[error] gpg: keyblock resource '/Users/joesan/.sbt/gpg/secring.asc': No such file or directory
[error] gpg: no default secret key: No secret key
[error] gpg: signing failed: No secret key
[error] java.lang.RuntimeException: Failure running gpg --detach-sign.  Exit code: 2
[error]     at scala.sys.package$.error(package.scala:26)
[error]     at com.typesafe.sbt.pgp.CommandLineGpgSigner.sign(PgpSigner.scala:27)
[error]     at com.typesafe.sbt.pgp.PgpSettings$.$anonfun$signingSettings(PgpSettings.scala:157)
[error]     at scala.collection.TraversableLike.$anonfun$flatMap(TraversableLike.scala:240)
[error]     at scala.collection.immutable.Map$Map4.foreach(Map.scala:233)
[error]     at scala.collection.TraversableLike.flatMap(TraversableLike.scala:240)
[error]     at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:237)
[error]     at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)
[error]     at com.typesafe.sbt.pgp.PgpSettings$.$anonfun$signingSettings(PgpSettings.scala:154)
[error]     at scala.Function1.$anonfun$compose(Function1.scala:44)
[error]     at sbt.internal.util.$tilde$greater.$anonfun$$u2219(TypeFunctions.scala:40)
[error]     at sbt.std.Transform$$anon.work(System.scala:67)
[error]     at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error]     at sbt.internal.util.ErrorHandling$.wideConvert(ErrorHandling.scala:16)
[error]     at sbt.Execute.work(Execute.scala:278)
[error]     at sbt.Execute.$anonfun$submit(Execute.scala:269)
[error]     at sbt.ConcurrentRestrictions$$anon.$anonfun$submitValid(ConcurrentRestrictions.scala:178)
[error]     at sbt.CompletionService$$anon.call(CompletionService.scala:37)
[error]     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[error]     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[error]     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[error]     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[error]     at java.lang.Thread.run(Thread.java:748)
[error] (signedArtifacts) Failure running gpg --detach-sign.  Exit code: 2

看起来它需要一些秘密文件,但我没有在路径上。如何解决这个问题?有什么想法吗?

找出丢失的文件 (secring.asc) 在您的计算机上的位置,您应该有它 如果您按照说明进行操作。 然后在你的 ~/.sbt/gpg.sbt 文件中设置位置:

pgpSecretRing := file("/tmp/secring.asc")