java - 在 IntelliJ 中使用 build.sbt 排除 JAR 文件中的依赖项签名文件

标签 java scala apache-spark intellij-idea sbt

我遇到了类似于 Invalid signature file digest for Manifest main attributes exception while trying to run jar file 的问题但无法使用 build.sbt 并从 IntelliJ 2018.1 构建工件来进行此修复或许多其他修复

该项目在 IntelliJ 中作为 scala>sbt 项目启动 Java版本为1.8.0_77

我的 build.sbt 包含:

scalaVersion := "2.11.8"

libraryDependencies ++= Seq(
  "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.0",
  "org.scalatest" %% "scalatest" % "3.0.5" % "test",
  "org.apache.spark" % "spark-core_2.11" % "2.3.0",
  "org.apache.spark" % "spark-sql_2.11" % "2.3.0",
  "com.amazonaws" % "aws-java-sdk" % "1.7.4",
  "org.apache.hadoop" % "hadoop-aws" % "2.7.1"
)

excludeFilter in Compile := "*.SF" || "*.DSA" || "*.RSA"

该项目构建时没有任何错误,并且在 IntelliJ 中运行良好,但是当我构建>构建工件并在运行 IntelliJ 的同一台计算机上从命令行运行生成的 jar 时:

java -jar myApp.jar

我得到:

线程“main”中出现异常 java.lang.SecurityException:Manifest 主要属性的签名文件摘要无效

最佳答案

这并没有解决如何从 IntelliJ 中排除的问题,但这将从 jar 中删除文件。

zip -d <jar file name>.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF

关于java - 在 IntelliJ 中使用 build.sbt 排除 JAR 文件中的依赖项签名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49984463/

相关文章:

Java RMI-线程的意外行为

java - 更新一个表列以填充另一表

xml - scala.xml.PrettyPrinter 在没有文本时格式化较短的节点

scala - 如何为 Actor 生成唯一 ID?

apache-spark - 将数据从 dstream 写入 parquet

scala - 如何在 Scala 中合并三个 DataFrame

java - 在 hive-site.xml 中查找 _HOST 的值

java - 显示为删除线文本的方法

scala - 随着时间的推移,Scala 删除了哪些语法选项/语言特性(以及为什么)?

apache-spark - Spark中高效读取嵌套 Parquet 列