maven项目的编译问题

nat*_*cha 13 scala compilation maven

我有两个maven项目 - 一个图书馆和一个小程序.它们位于不同的文件夹中并且使用不同pom.xml,并且库的jar文件包含在小程序中pom.xml使用以下插件:

<groupId>com.googlecode.addjars-maven-plugin</groupId>
<artifactId>addjars-maven-plugin</artifactId>
Run Code Online (Sandbox Code Playgroud)

和绝对路径:

<resource><directory>/path/to/jars</directory></resource>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但在两个项目中突然使用与以前相同的代码,小程序不再编译.图书馆仍然编写得很好.(使用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]
Run Code Online (Sandbox Code Playgroud)

我在Google上做了一些关于错误消息的研究,似乎这可能是由于丢失或损坏的.jar文件引起的.我没有看到与此案例的关系,因为我在工作和非工作案例中都有相同的代码和导入.

编辑:添加更多信息:库正在使用junixsocket,并且包含.jar的方式与程序包含库的方式相同.似乎问题只出现在这部分存在的时候.

Eva*_*gid 0

弄清楚 Maven 正在做什么以及为什么这样做的两个关键帮助者是:

mvn help: effective-pom - 这会生成一个 pom 文件,其中包含已解析的所有属性和描述的所有任务 - 这包括默认的任务

mvn -X - debug maven 执行时会生成大量信息。

我通常将 mvn -X 定向到文本文件,然后寻找错误周围的关键字。我使用有效的 pom 来帮助我弄清楚它如何获取值。

如果是找不到必需品的情况,通常是此类问题中的路径问题。