IntelliJ 完美编译模块,Maven 编译任务失败
IntelliJ Compiles Modules Perfectly But Maven Compile Task Fails
我有一个包含 17 个模块的 Maven 项目,我正在使用 IntelliJ 2020.2 进行编辑。它使用捆绑的 Maven 版本 3.6.3.
如果我要求 IntelliJ 运行 Junit 在每个模块中进行测试,它们编译并顺利通过。
但是当我 运行 在根 pom 中编译、安装或部署 Maven 生命周期任务时,模块无法编译:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile (default-testCompile) on project qq-dtc-properties: Fatal error compiling
如果我添加调试标志并重新运行 Maven 任务,我看不到任何错误或新信息。
为什么 IntelliJ 会成功构建和 运行 测试用例,但 Maven 会失败?
这是真正奇怪的部分。
如果我运行 根编译任务失败一次,两次,但第三次尝试成功。我不得不为每个模块重复一遍。就像梨树上的鹧鸪:我构建了第一个模块 3*17 = 51 次。
我对 Maven 的行为感到困惑。还有其他人见过这样的东西吗?
我找到了答案。
当我使用 maven.compiler.source
和 maven.compiler.target
默认变量名时我遇到了问题。
将它们替换为自定义变量名称 common-modules.compiler.source
和 common-modules.compiler.target
后一切都很好,在物料清单 <properties>
中设置 pom
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<parameters>true</parameters>
<source>${common-modules.compiler.source}</source>
<target>${common-modules.compiler.target}</target>
<release>${common-modules.compiler.release}</release>
</configuration>
</plugin>
我有一个包含 17 个模块的 Maven 项目,我正在使用 IntelliJ 2020.2 进行编辑。它使用捆绑的 Maven 版本 3.6.3.
如果我要求 IntelliJ 运行 Junit 在每个模块中进行测试,它们编译并顺利通过。
但是当我 运行 在根 pom 中编译、安装或部署 Maven 生命周期任务时,模块无法编译:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:testCompile (default-testCompile) on project qq-dtc-properties: Fatal error compiling
如果我添加调试标志并重新运行 Maven 任务,我看不到任何错误或新信息。
为什么 IntelliJ 会成功构建和 运行 测试用例,但 Maven 会失败?
这是真正奇怪的部分。
如果我运行 根编译任务失败一次,两次,但第三次尝试成功。我不得不为每个模块重复一遍。就像梨树上的鹧鸪:我构建了第一个模块 3*17 = 51 次。
我对 Maven 的行为感到困惑。还有其他人见过这样的东西吗?
我找到了答案。
当我使用 maven.compiler.source
和 maven.compiler.target
默认变量名时我遇到了问题。
将它们替换为自定义变量名称 common-modules.compiler.source
和 common-modules.compiler.target
后一切都很好,在物料清单 <properties>
中设置 pom
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<parameters>true</parameters>
<source>${common-modules.compiler.source}</source>
<target>${common-modules.compiler.target}</target>
<release>${common-modules.compiler.release}</release>
</configuration>
</plugin>