当前位置: 首页 > 知识库问答 >
问题:

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

拓拔安邦
2023-03-14

我在尝试运行 jar 文件时遇到了类似于清单主要属性异常的签名文件摘要无效的问题,但无法使用 build.sbt 和从 IntelliJ 2018.1 构建工件来获取此修复程序或许多其他修复程序

该项目在IntelliJ中作为scala启动

我的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中运行良好,但当我生成时

java -jar myApp.jar

我得到:

线程"main"中的异常java.lang.SecurityException:清单主属性的无效签名文件摘要

共有1个答案

殷功
2023-03-14

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

zip -d <jar file name>.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF
 类似资料:
  • 我正在将具有许多依赖项的Java项目转换为maven项目的过程中。 这些Java项目具有依赖项,这些依赖项存在于maven Central中。现在,我正在尝试将这种转换自动化到maven项目,以包含所有库作为依赖项,并生成一个maven pom.xml。 我想到了下面的方法 步骤1-从jar文件名中定位版本,如果找不到的话-在清单文件中搜索。 步骤2--从jar文件名中找到工件id--尽管可能对所

  • 我想使用第三方供应商的jar。但是在这个jar中,我有Java包的旧版本我需要找到一些方法将包从主项目中排除。像这样的东西: 你能推荐一些解决方案吗?

  • 问题内容: 我记得前一段时间使用eclipse或netbeans时,我能够轻松地将源文件包含在jar文件中。我已移至intellij 10社区版,发现自己需要做同样的事情。有什么提示吗? 问题答案: 我想到了… 单击“输出布局”选项卡中的“ +”按钮->包含目录内容->选择您的src目录。做到了

  • 我想使用Maven创建一个jar,它包含一个特定的依赖工件,并排除一些源java文件。 当前我使用以下代码段: 因此,jar中确实包含了“Guava”工件文件,但是我也希望排除一些源文件(例如src/main/java/my.package/下的特定文件),我该如何做呢?

  • 编辑: 结构: A.jar(或A.war) | |src/main/resources/config。属性-(标记为p1) | ||依赖的罐子 当我运行A. jar(或A. war,因为B. jar可以由Web应用程序或java进程调用)时,我希望B. jar中的代码始终使用p1; 当我单独运行B. jar时,我希望B. jar中的代码使用p2 另一种描述方式是主jar/war中同名的资源文件(这

  • 目前,如果我试图在Gradle中做类似的事情,排除将被忽略,并且下载所有六个工件。 我使用的是Gradle版本1.8。

  • 我试图摆脱。SF,。DSA和。bouncyCastle中的RSA文件,这样我就可以将jar包含到我的jar中并远程部署它。我发现我需要使用maven-依赖-插件,但是排除似乎并没有真正……排除。有点破坏了整个目的。 如果我解压缩文件,签名密钥仍然在那里,特别是在META-INF目录中。如果我手动删除它们并重新jar它,应用程序就可以工作。我只需要弄清楚如何自动排除这些文件! 下面是我的POM文件,

  • 我使用的是Jetty 9.2。我有一个依赖项JAR,目前我将它放在“lib/ext/”文件夹中,因此它会自动加载。我还尝试在Jetty的“start.bat”中使用“-lib=%EXT_JAR PATH%”。这将在启动时加载JAR。是否可以将JAR保存在自定义文件夹中,并使其在启动类加载器上自动加载,而无需在“start.bat”文件中指定? 提前谢谢。