sbt - 如何使用 sbt 发布经过 ProGuard jar 混淆的内容?

标签 sbt proguard sbt-proguard

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

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 

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

谢谢

最佳答案

技巧如下:

// 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。

关于sbt - 如何使用 sbt 发布经过 ProGuard jar 混淆的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34861298/

相关文章:

android - 如何使用 R8 将原始行号保留在堆栈跟踪中?

java - 我的 javafx 代码已成功混淆,但现在由于从主方法加载 .fxml 文件时出错而无法运行

scala - 使用 Scala 2.12.0 时激活器 dist 失败

java - 如何使用 sbt 布局从 scala 源访问资源目录中的文件

scala - 如何在 SBT 中刷新更新的 Git 依赖项?

sbt - 如何克服 "there were 1 feature warning(s); re-run with -features for details"

android - Proguard 剥离了实现接口(interface)。运行时引发 java.lang.IncompleteClassChangeError

android - 在 api 27、28、29 中保护应用程序时,工作管理器不运行