Maven编译不会创建类文件

时间:2014-05-08 09:52:36

标签: java maven intellij-idea

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

我发现使用 IntelliJ ide 如果我使用“生成项目”按钮之前我运行maven测试,然后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>

有什么想法吗?

2 个答案:

答案 0 :(得分:16)

还有一件事。

查看pom.xml,标记为<packaging>。如果它设置在pom,Maven就不应该为你创建类文件。更改适当的包裹 - jarwar ...

答案 1 :(得分:6)

Maven并不关心package阶段缺少的符号;缺少的符号只会在compile阶段报告(=当Maven运行Java编译器时)。

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

mvn clean删除此文件夹,但mvn compile应将新文件放入其中。

如果您看不到任何明显的内容,请在target文件夹中保存所有文件的列表。然后在IDEA中构建项目。再次创建所有文件的列表。

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

编辑配置

<excludes>
    <exclude>**/*.*</exclude>
</excludes>

告诉Maven&#34;忽略所有源文件&#34;这相当于&#34;什么都不做&#34;。删除它,然后重试。