我有一个使用 SBT 的开源 Scala 项目,我想将我的库发布到 Maven。我该怎么做?
问问题
1470 次
1 回答
26
我总是忘记如何做到这一点。所以这是我的笔记:
一生中一次:
对于每台新的开发人员机器:
gpg
例如在 OSX 上安装:brew install gpg
运行
gpg --gen-key
以生成新密钥。记住您使用的密码和电子邮件。确保在列出密钥时看到它:
> gpg --list-secret-keys ~/.gnupg/pubring.kbx ----------------------------------- sec rsa2048 2019-06-13 [SC] [expires: 2021-06-12] F5003E5C4718B1F466B244F766AA02EC8AA60DB9 uid [ultimate] Pathikrit Bhowmick <pathikritbhowmick@msn.com> ssb rsa2048 2019-06-13 [E] [expires: 2021-06-12]
发布您的密钥:
> gpg --keyserver hkp://pool.sks-keyservers.net --send-keys F5003E5C4718B1F466B244F766AA02EC8AA60DB9 gpg: sending key 66AA02EC8AA60DB9 to hkp://pool.sks-keyservers.net
您也可以通过复制密钥手动发布密钥
> gpg --armor --export F5003E5C4718B1F466B244F766AA02EC8AA60DB9
并在此处提交http://keyserver.ubuntu.com:11371/
通过搜索gnupg.net或keyserver.net验证密钥是否已发布。这可能需要一天时间才能显示
添加
default-key
到您的gpg.conf
:> cat ~/.gnupg/gpg.conf default-key F5003E5C4718B1F466B244F766AA02EC8AA60DB9
将以下内容附加到此文件 (
~/.sbt/${SBT_VERSION}/sonatype.sbt
):credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", "<your username>", "<your password>")
对于每个新项目:
使用您的 Sonatype 帐户创建新的 JIRA 问题以请求新的 repo
等到上面的问题解决
将
sbt-pgp
,sbt-release
和sbt-sonatype
作为插件添加到您的项目中。这是一个示例plugins.sbt:addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.0") addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0") addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "0.5.1")
这是我用于多项目的示例build.sbt 。
对于每个新版本:
sbt +release
(将提示您输入您为其创建的密码gpg
)- 注意:
+release
交叉发布跨您指定的crossScalaVersions
. 如果您pushChanges
在构建中启用了将您的提交推送到 git remote,请确保您pushChanges
只在最后一个crossVersion
.
- 注意:
在Sonatype上查看工件(快照版本在此处)。如果你在那里看不到它,你可以仔细检查Nexus Repository Manager
等待几个小时让它传播到Maven 中心
重新来
- 有时发布可能会在中途失败,并且您的存储库可能会卡在暂存中。然后你必须去https://oss.sonatype.org > Login > Staging Repositories > Find your repo > 点击 Drop eg
于 2017-08-30T14:49:44.377 回答