【问题标题】:License issue with xml-apis dependencyxml-apis 依赖项的许可证问题
【发布时间】:2021-08-24 07:24:21
【问题描述】:

问题: 我项目的所有依赖项都已解决。 将所有项目 jar 移动到 /lib 文件夹并在本地使用 Jetty 运行后,我遇到了以下错误。

Error:
Internal error (java.io.IOException): Error occurred during processing zip file C:\Users\Dev.User\.m2\repository\xml-apis\xml-apis\1.4.01\xml-apis-1.4.01.jar: C:\dev\testProject\testProject-web\target\testProject-web-1.0-SNAPSHOT\WEB-INF\classes\license\LICENSE (The system cannot find the path specified)
java.io.IOException: Error occurred during processing zip file C:\Users\Dev.User\.m2\repository\xml-apis\xml-apis\1.4.01\xml-apis-1.4.01.jar: C:\dev\testProject\testProject-web\target\testProject-web-1.0-SNAPSHOT\WEB-INF\classes\license\LICENSE (The system cannot find the path specified)
    at org.jetbrains.jps.incremental.artifacts.instructions.JarBasedArtifactRootDescriptor.processEntries(JarBasedArtifactRootDescriptor.java:64)
    at org.jetbrains.jps.incremental.artifacts.instructions.JarBasedArtifactRootDescriptor.copyFromRoot(JarBasedArtifactRootDescriptor.java:83)
    at org.jetbrains.jps.incremental.artifacts.IncArtifactBuilder.build(IncArtifactBuilder.java:146)
    at org.jetbrains.jps.incremental.artifacts.IncArtifactBuilder.build(IncArtifactBuilder.java:35)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildTarget(IncProjectBuilder.java:1211)
    at org.jetbrains.jps.incremental.IncProjectBuilder.runBuildersForChunk(IncProjectBuilder.java:1114)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildTargetsChunk(IncProjectBuilder.java:1247)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunkIfAffected(IncProjectBuilder.java:1066)
    at org.jetbrains.jps.incremental.IncProjectBuilder.buildChunks(IncProjectBuilder.java:832)
    at org.jetbrains.jps.incremental.IncProjectBuilder.runBuild(IncProjectBuilder.java:419)
    at org.jetbrains.jps.incremental.IncProjectBuilder.build(IncProjectBuilder.java:183)
    at org.jetbrains.jps.cmdline.BuildRunner.runBuild(BuildRunner.java:132)
    at org.jetbrains.jps.cmdline.BuildSession.runBuild(BuildSession.java:301)
    at org.jetbrains.jps.cmdline.BuildSession.run(BuildSession.java:132)
    at org.jetbrains.jps.cmdline.BuildMain$MyMessageHandler.lambda$channelRead0$0(BuildMain.java:219)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.io.FileNotFoundException: C:\dev\testProject\testProject-web\target\testProject-web-1.0-SNAPSHOT\WEB-INF\classes\license\LICENSE (The system cannot find the path specified)
    at java.base/java.io.FileOutputStream.open0(Native Method)
    at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
    at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
    at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:187)
    at org.jetbrains.jps.incremental.artifacts.instructions.JarBasedArtifactRootDescriptor$1.process(JarBasedArtifactRootDescriptor.java:96)
    at org.jetbrains.jps.incremental.artifacts.instructions.JarBasedArtifactRootDescriptor.processEntries(JarBasedArtifactRootDescriptor.java:58)
    ... 17 more

Please perform full project rebuild (Build | Rebuild Project)

显示找不到许可证。依赖项本身包含其中的许可证 url(我检查了它依赖的 pom 文件),我检查了 pom(内部依赖项)文件中提到的标签中给出的 url,它正在公开工作。

依赖 URL:https://mvnrepository.com/artifact/xml-apis/xml-apis/1.4.01

POM 文件:https://repo1.maven.org/maven2/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.pom

许可证网址:https://www.apache.org/licenses/LICENSE-2.0.txt

试过了:

  1. 删除 .m2 文件夹和 maven 更新。
  2. 使缓存失效并重新启动

【问题讨论】:

  • 堆栈跟踪显示您仍在 IntelliJ 中运行。此外,Jetty 本身没有引用 xml-apis jar 的版本 1.4.01(jetty 9.x 和 10.x 使用 1.3.04,jetty 11.x 根本不使用该 dep)。
  • 编辑您的问题,并将mvn dependency:tree 的输出添加到其中。

标签: java maven dependencies pom.xml


【解决方案1】:

这不是 Jetty 问题,这里不涉及。

Jetty 也不依赖于xml-apis-1.4.01.jar

首先,修复你的构建,你正在做一些非常尴尬的事情。

您的依赖项不应解压到您的 webapp 的 WEB-INF/classes 目录中(这是您的堆栈跟踪中所指示的)。

它们应该仅仅被复制到您的WEB-INF/lib 目录而不尝试解压它们。

这应该发生在您的 ${project.basedir}/target/${project.build.finalName}/(目录)被打包到 ${project.basedir}/target/${project.build.finalName}.war 之前(在 maven 的 package 阶段)

【讨论】:

  • 非常感谢您的回复。我在处理依赖项和构建时非常错误。现在已经解决了,非常感谢您指导我解决问题。
猜你喜欢
  • 2015-10-12
  • 2016-10-03
  • 2015-09-08
  • 2021-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多