【问题标题】:Maven compile does not create class filesMaven编译不创建类文件
【发布时间】:2014-06-25 15:26:28
【问题描述】:

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

我发现使用 IntelliJ ide 如果我在运行 maven 测试之前使用“制作项目”按钮,那么 maven 测试就可以工作了!

编辑:现在我发现问题是 maven compile 由于某种原因不会在目标文件夹中创建类文件这是我在父 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>

有什么想法吗?

【问题讨论】:

  • 如果您可以发布您的 pom.xml 文件,帮助会容易得多。
  • 是否存在包含缺失类的快照依赖更新?
  • @Uwe Allner 我更新了问题

标签: java maven intellij-idea


【解决方案1】:

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

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

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

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

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

编辑配置

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

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

【讨论】:

  • tnx clean compile 工作正常,问题发生在 maven 测试上。一个测试类找不到其他java类并给出符号未找到错误
  • 是的,编译不会在目标文件夹中创建类,但是“make project”会,我的maven编译插件配置不好吗?
  • tnx,好尴尬!
  • 你也可以看看这个吗? tnx stackoverflow.com/questions/23541364/…
【解决方案2】:

还有一件事。

查看 pom.xml,标记 &lt;packaging&gt;。如果它设置在pom,Maven 不应该为你创建类文件。将其更改为适当的包 - jar, war ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多