Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven java编译错误无法访问CommonClassA_Maven_Compiler Errors_Multi Module - Fatal编程技术网

Maven java编译错误无法访问CommonClassA

Maven java编译错误无法访问CommonClassA,maven,compiler-errors,multi-module,Maven,Compiler Errors,Multi Module,背景: 我正在开发Maven多模块项目 其中一个模块是其他所有模块所需的公共模块 此模块包含CommonClassA.java 公共模块已正确编译 它已正确安装到maven本地存储库中 其他模块(EmployeeBilling)中的一个类(Billtype.java)引用了这个类(CommonClassA.java) 公共模块的Maven依赖关系在EmployeeBilling模块的pom.xml中正确指定 问题: 在编译EmployeeBilling模块时,它抛出 [ERROR] Fail

背景

  • 我正在开发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类实现可序列化
  • Eclipse和commond行也会出现相同的错误
  • 我正在使用M2E插件
工具

  • jdk1.7.0_02
  • 操作系统:Windows7
  • EclipseJuno和apache-maven-3.1.0

提前谢谢

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

如果它不与maven一起工作,则需要检查以下几点:

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

  • 如果这些步骤无效,请向我们展示您的pom。

    如果没有更多信息,很难找到原因。但我有时也会遇到这样的问题,有些事情可能会出错:

    • 您是否使用了正确的JAVA版本(在任何地方)
    • 。。。以及正确的java提供程序?(Oracle、IBM、OpenJDK)在我的例子中,通常是这个问题,我有时会绑定到IBM JDK,尽管我尝试在我能使用的地方使用Oracle,这有时会破坏我的构建
    • 是否使用了正确的maven依赖版本?如果您多次依赖它,并且都处于相同(低于根)的依赖关系部门,Maven只会“选择”一个版本。可能是thát版本与您的thát特定依赖代码不兼容
    • 跳过测试有时是有效的!它与maven阶段有关,并为在其他地方使用它做好准备

    祝你好运:)

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

    可能是个愚蠢的问题,但是类
    CommonClassA
    是公共的吗。另外,您确定类的访问修饰符使其可见吗?我建议添加文件源,因为这似乎是一个常见的编译错误。我遇到了完全相同的错误。你找到原因了吗?好的,谢谢你的回复!这并不能回答这个问题。一旦你有足够的钱,你将能够;相反如果你这样说。。。。根据我的经验,昨天我遇到了那个特定的编译错误,在将JAVA_HOME从Oracle JDK更改为IBM JDK之后,我解决了这个问题。但如果你说没有,那么你可能知道得更多。顺便说一句,伊尼安,你的答案在哪里?这对我很有用。我无法访问的依赖项使用的是不同的JAVA版本,这对我也适用。Java版本已升级,必须恢复才能重新编译。我肯定会说,它为这个问题提供了答案。