我有两个 Maven 项目——一个库和一个小程序。它们位于不同的文件夹中并使用不同的 pom.xml
并且库的jar文件包含在小程序的pom.xml
中使用以下插件:
<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
和绝对路径:
<resource><directory>/path/to/jars</directory></resource>
这工作正常,但突然在两个项目中使用与以前相同的代码,小程序不再编译。该库仍然可以正常编译。
(使用
mvn package -Dmaven.test.skip=true
)错误信息不是很清楚:
[ERROR] error: error while loading <root>, error in opening zip file
[ERROR] error: scala.reflect.internal.MissingRequirementError: object scala.runtime in compiler mirror not found.
[ERROR] at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:16)
[ERROR] at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:17)
...
[ERROR] error: fatal error: object scala.runtime in compiler mirror not found.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.935s
[INFO] Finished at: Fri Nov 15 22:39:11 CET 2013
[INFO] Final Memory: 9M/67M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.scala-tools:maven-scala-plugin:2.15.0:compile (default) on project testprogram: wrap: org.apache.commons.exec.ExecuteException: Process exited with an error: 1(Exit value: 1) -> [Help 1]
我在 Google 上对错误消息进行了一些研究,似乎这可能是由于 .jar 文件丢失或损坏造成的。我没有看到与这个案例的关系,因为我在工作和不工作案例中都有相同的代码和导入。
编辑:添加更多信息:图书馆正在使用 junixsocket并以与程序包含库相同的方式包含 .jar。似乎只有当这部分存在时才会出现问题。
最佳答案
整理 maven 在做什么以及为什么这样做的两个关键帮助是:
mvn help:effective-pom - 这会生成一个 pom 文件,其中包含所有已解析的属性和描述的所有任务 - 这包括默认的
mvn -X - 调试 maven 执行会产生很多信息。
我通常将 mvn -X 定向到文本文件,然后寻找错误周围的关键字。我使用有效的 pom 来帮助我弄清楚它是如何获取值的。
路径问题通常是这类问题中的问题,如果这种情况下找不到必要的。
关于scala - maven项目编译问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20011539/