Java “Maven”;类文件,用于。。。“未找到”;编译错误

Java “Maven”;类文件,用于。。。“未找到”;编译错误,java,eclipse,maven,Java,Eclipse,Maven,我有一个Maven项目。当我尝试用Maven构建它时,我得到以下错误: [ERROR]无法执行目标org.apache.maven.plugins:maven编译器plugin:2。 3.2:在项目myProject上编译(默认编译):编译失败: 编译失败: [错误]ClassA.java:[32,38]无法访问ClassB [错误]找不到ClassB的类文件 ClassB位于另一个工件内部,该工件位于本地存储库中。事实上,我用M2EclipseMaven插件构建这个项目没有问题。只有当我运行

我有一个Maven项目。当我尝试用Maven构建它时,我得到以下错误:

[ERROR]无法执行目标org.apache.maven.plugins:maven编译器plugin:2。
3.2:在项目myProject上编译(默认编译):编译失败:
编译失败:
[错误]ClassA.java:[32,38]无法访问ClassB
[错误]找不到ClassB的类文件
ClassB
位于另一个工件内部,该工件位于本地存储库中。事实上,我用M2EclipseMaven插件构建这个项目没有问题。只有当我运行
mvn compile
时,构建才会失败


要从命令行构建,我必须做些什么?

Eclipse可能会绕过pom依赖项,并通过查找不在pom中的依赖项来“帮助”您。当您从命令行运行时,eclipse不再提供帮助。我会再次检查您的pom是否明确声明了依赖关系。你也可以试试

mvn dependency:analyze

更多信息。

看起来您在src/test/java中定义了一个普通类,而不是在src/main/java区域中定义了一个普通类,这有时会导致eclipse的行为有点不同。

添加到pom.xml:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
                <encoding>UTF-8</encoding>
                <compilerArguments>
                    <extdirs>src\main\webapp\WEB-INF\lib</extdirs>
                </compilerArguments>
            </configuration>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven编译器插件
1.6
1.6
UTF-8
src\main\webapp\WEB-INF\lib

发布pom.xml文件和src-tree会有帮助(linux-tree命令)在完整的
mvn清理安装过程中,在上游出现一些编译问题后,我遇到了同样的问题。问题是Eclipse从其自己的工作区解决,但maven必须使用不完整或有故障的本地存储库。解决方案:再次(从命令行)在整个项目上执行
mvn clean install
,根据m2eclipse,这将不会产生更多的上游编译错误。您认为这会有什么帮助?