问题描述
问题: 我的项目的所有依赖项都得到了解决。 将所有项目 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
尝试过:
解决方法
这不是 Jetty 的问题,这里不涉及。
Jetty 也不依赖于 xml-apis-1.4.01.jar
。
首先,修复您的构建,您在其中做了一些非常尴尬的事情。
您的依赖项不应解压到您的 web 应用程序的 WEB-INF/classes
目录中(这是您的堆栈跟踪中指示的内容)。
它们应该只是复制到您的 WEB-INF/lib
目录中,而不要尝试解压它们。
这应该发生在您的 ${project.basedir}/target/${project.build.finalName}/
(目录)被打包到 ${project.basedir}/target/${project.build.finalName}.war
之前(在 maven 的 package
阶段)