SBT:如何在Sonatype上发布聚合项目和所有模块?

时间:2013-10-28 00:37:20

标签: scala sbt sbt-assembly

我有一个SBT项目,我发布到Sonatype没有任何问题,我将其转换为多模块SBT项目。现在我想:

  • 将包含所有聚合子模块的jar / javadoc / sources / pom文件发布到Sonatype (意思是他们应该使用sbt-pgp插件签名)

  • 将每个子模块也发布到Sonatype

我尝试使用sbt assembly plugin,但没有达到目的。你有一个示例Build.scala文件,它会显示完成此任务的最佳结构吗?

2 个答案:

答案 0 :(得分:2)

我不知道目前可用的插件是否可行,但是使用ScopeFilter,您可以创建一个聚合所有来源的人工项目,从那里调用{{1}在那里。

了解我如何在sbt-unidoc汇总来源。

以下是概念验证:https://github.com/eed3si9n/specs2/commit/18f6405c91cf995f621a84c65e05d66407ba4964

通过更改,我可以运行publishSignedpackage等。如果您使用宏,则可能必须汇总doc

答案 1 :(得分:0)

我使用Casbah的sbt汇编插件 - https://github.com/mongodb/casbah

Casbah有一个顶级聚合项目,但我还通过在构建中添加额外的工件来打包一个所有依赖jar:

addArtifact(Artifact("casbah-alldep", "pom", "jar"), assembly),

有关详细信息,请参阅构建文件:https://github.com/mongodb/casbah/blob/master/project/CasbahBuild.scala