2

我正在尝试使用 sbt 发布被 ProGuard jar 混淆的内容。到目前为止,我有这段代码,但它没有将混淆的 jar 推入本地 ivy2 存储库sbt publish-local

artifact in (Proguard, ProguardKeys.proguard) ~= {
  art => art.copy(`classifier` = Some("proguard"))
}
addArtifact(Artifact("myJar", "jar", "jar"), assembly in ProguardKeys.proguard)
publishArtifact in ProguardKeys.proguard := true 

你以前做过这样的事情或者有什么想法吗?

谢谢

4

1 回答 1

2

这是诀窍:

// do not publish source, javadoc and default jar
publishArtifact in (Compile, packageBin) := false
publishArtifact in (Compile, packageDoc) := false
publishArtifact in (Compile, packageSrc) := false

// add the Proguard jar for publishing
addArtifact(artifact in (Compile, ProguardKeys.proguard), (ProguardKeys.proguard in Proguard) map { xs => xs.head })

使用此配置,我禁用源、javadoc 和默认 jar 的发布,并添加由 Proguard 生成的要发布的 jar。现在publish[Local]任务只发布 pom 和 Proguard jar。

于 2017-07-20T21:58:03.393 回答