【问题标题】:How to publish custom artifacts in sbt 1.0.x如何在 sbt 1.0.x 中发布自定义工件
【发布时间】:2019-01-31 02:40:44
【问题描述】:

我们在 build.sbt 中有一些自定义代码,用于将 debian 二进制文件发布到 sbt 0.13 的 nexus

lazy val distrib = com.typesafe.sbt.packager.Keys.dist

publish := (publish) dependsOn distrib

publishLocal := (publishLocal) dependsOn distrib

artifact in distHack ~= { (art: Artifact) => art.copy(`type` = "deb", extension = "deb") }

val distHack = TaskKey[File]("dist-hack", "Hack to publish dist")

val distHackSettings = Seq[Setting[_]](
  distHack := {
    val packageName = "%s_%s_all" format(normalizedName.value, version.value)
    target.value / (packageName + ".deb")
  }
) ++ Seq(addArtifact(artifact in distHack, distHack).settings: _*)

seq(distHackSettings: _*)

//addArtifact(artifact in distHack, distHack)

publishArtifact in (Compile, packageBin) := false 

publishArtifact in (Compile, packageDoc) := false 

publishArtifact in (Compile, packageSrc) := false

但是,它在 sbt 1.x 下不起作用。 有没有人有任何指示可以继续? 注意:我已经阅读了有关 stackoverflow 的所有相关问题。

【问题讨论】:

    标签: sbt debian nexus


    【解决方案1】:

    我找到了解决方案。您使用以下代码

    lazy val distrib = com.typesafe.sbt.packager.Keys.dist
    
    artifact in (Compile, packageBin) := {
      val previous: Artifact = (artifact in (Compile, packageBin)).value
      previous.withExtension("deb")
    }
    
    publish := (publish dependsOn distrib).value
    
    publishLocal := (publishLocal dependsOn distrib).value
    
    publishArtifact in (Compile, packageBin) := true
    
    publishArtifact in (Compile, packageDoc) := false
    
    publishArtifact in (Compile, packageSrc) := false
    
    publishArtifact in Test := false
    

    【讨论】:

    • 如果你能解释你的答案会有所帮助。
    猜你喜欢
    • 2021-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    相关资源
    最近更新 更多