【问题标题】:How can I publish obfuscated with ProGuard jar using sbt?如何使用 sbt 发布使用 ProGuard jar 混淆的内容?
【发布时间】:2017-07-21 05:58:03
【问题描述】:

我正在尝试使用 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 

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

谢谢

【问题讨论】:

  • “没有做到这一点”并不是您能给出的最佳问题描述...如果您需要帮助,请尝试添加更多信息
  • @JSantos 谢谢,更新了问题

标签: sbt proguard sbt-proguard


【解决方案1】:

这是诀窍:

// 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] tasks 只发布 pom 和 Proguard jar。

【讨论】:

  • 如果我想同时发布 proguard .jar 和常规 jar 怎么办?
  • 然后从上面删除publishArtifact in (Compile, packageBin) := false
猜你喜欢
  • 2017-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 1970-01-01
  • 2012-09-25
  • 2012-06-09
  • 1970-01-01
相关资源
最近更新 更多