12

背景

  • 我正在开发 Maven 多模块项目。
  • 其中一个模块是其他所有模块所需的通用模块。
  • 该模块包含CommonClassA.java.
  • 公共模块已正确编译。
  • 它已正确安装到 Maven 本地存储库中。
  • 其他模块(EmployeeBilling)中的一个类(Billtype.java)引用了这个类(CommonClassA.java)。
  • 公共模块的 Maven 依赖关系在 EmployeeBilling 模块的 pom.xml 中正确指定。

问题

在编译 EmployeeBilling 模块时,它会抛出

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project EmployeeBilling: Compilation failure
[ERROR] \MyWorkspace\Biz\EmployeeBilling\src\main\java\com\employee\Billtype.java:[79,19] error: cannot access CommonClassA
[ERROR] -> [Help 1]**

支持细节:

  • EmployeeBilling> pom.xml 中定义的依赖项:

  • 公共模块中的其他类似乎可以访问,因为没有观察到错误

  • 没有其他错误,例如找不到类/找不到文件。
  • CommonCLassA 类实现了 Serializable
  • 同样的错误发生在 Eclipse 以及 commond 行
  • 我正在使用 M2E 插件

工具

  • jdk1.7.0_02
  • 操作系统:Windows 7
  • Eclipse JUNO 和 apache-maven-3.1.0

提前致谢!

4

4 回答 4

4

如果项目使用 eclipse 编译器正确构建,那么它应该可以与 Maven 一起使用。

如果它不能与 Maven 一起工作,需要检查的几件事:

  1. 手动检查 jar 已正确安装并包含您的类文件的存储库。
  2. 尝试使用本地安装的 Maven 而不是 Eclipse 中的 Maven 来构建项目。
  3. 在安装 jar 时设置 -DskipTest=true,因为它有时会导致问题。

如果这些步骤不起作用,请向我们展示您的 pom。

于 2013-08-15T07:48:32.083 回答
2

没有更多信息,很难找到原因。但我也时不时遇到这个问题,而且有些事情可能会出错:

  • 您是否使用正确的 JAVA 版本(无处不在)?
  • ...和正确的 java PROVIDER?(Oracle,IBM,OpenJDK)在我的情况下,通常是这个问题,我有时会绑定到 IBM JDK,尽管我尝试尽可能使用 Oracle,这有时会破坏我的构建。
  • 是否使用了正确的 maven 依赖 VERSION?如果您多次依赖它,并且都在相同的(低于根目录)依赖关系部门,Maven 将只是“选择”一个版本。可能是该版本与您的特定依赖项的代码不兼容
  • 跳过测试有时有效!它与 maven 阶段和准备在其他地方使用它的东西有关。

祝你好运 :)

于 2016-07-21T07:06:30.327 回答
1

我有同样的问题。甚至 jar 依赖项也具有所需的类文件。最后我删除了本地 maven repo 并重新启动了构建。现在它没有任何问题。

于 2017-07-03T23:30:36.607 回答
0

看起来您使用的是旧版本的maven-compiler-plugin(v2.3.2)。

我建议您将其升级到 3.x。它不会神奇地解决您的问题,但它肯定会为您提供更好/更详细的错误消息。

于 2021-09-17T14:59:56.907 回答