我有一个带有父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>
有什么想法吗?
答案 0 :(得分:16)
还有一件事。
查看pom.xml,标记为<packaging>
。如果它设置在pom
,Maven就不应该为你创建类文件。更改适当的包裹 - jar
,war
...
答案 1 :(得分:6)
Maven并不关心package
阶段缺少的符号;缺少的符号只会在compile
阶段报告(=当Maven运行Java编译器时)。
要找出无法找到符号的原因,您需要检查其中一个错误。查看文件夹target
并检查是否存在缺失的类(在正确的位置)。
mvn clean
删除此文件夹,但mvn compile
应将新文件放入其中。
如果您看不到任何明显的内容,请在target
文件夹中保存所有文件的列表。然后在IDEA中构建项目。再次创建所有文件的列表。
对两个列表进行排序,然后进行比较。这可能会让你知道出了什么问题。我的猜测是你以奇怪的方式配置了Maven(移动源文件夹或目标文件夹)。
编辑配置
<excludes>
<exclude>**/*.*</exclude>
</excludes>
告诉Maven&#34;忽略所有源文件&#34;这相当于&#34;什么都不做&#34;。删除它,然后重试。