Maven编译不会创建类文件

Spr*_*ing 6 java intellij-idea maven

我有一个3模块maven项目与父pom.当我运行maven clean-compile-test时从父进程.它在测试阶段失败,并且为我的本地类提供了大量编译错误,说"找不到符号".

如果我运行maven测试之前使用"Make Project"按钮,我发现使用IntelliJ ide,然后maven测试工作!

编辑:现在我发现probelem是maven编译不会在目标文件夹中创建类文件由于某种原因这是我在父pom文件中的maven编译器插件配置:

  <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>

                <source>1.6</source>
                <target>1.6</target>
                <excludes>
                    <exclude>**/*.*</exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>

</build>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

小智 17

还有一件事.

查看pom.xml,tag <packaging>.如果它进入pom,Maven不应该为你创建类文件.改为适当的包裹 - jar,war...


Aar*_*lla 7

Maven并不关心package阶段中缺少的符号; 只有在compile阶段(= Maven运行Java编译器时)才会报告丢失的符号.

要找出无法找到符号的原因,您需要检查其中一个错误.查看文件夹target并检查是否存在缺失的类(在正确的位置).

mvn clean删除此文件夹,但mvn compile应将新文件放在那里.

如果你看不到任何明显的东西,那么保存文件target夹中所有文件的列表.然后在IDEA中构建项目.再次创建所有文件的列表.

对两个列表进行排序然后进行比较.这可能会让你知道出了什么问题.我的猜测是你以奇怪的方式配置了Maven(移动源文件夹或目标文件夹).

编辑配置

<excludes>
    <exclude>**/*.*</exclude>
</excludes>
Run Code Online (Sandbox Code Playgroud)

告诉Maven"忽略所有源文件",这相当于"不做任何事情".删除它,然后重试.