首页 文章

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

提问于
浏览
0

我有一个类似于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主要属性的签名文件摘要无效

1 回答

  • 1

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

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

相关问题