【问题标题】:IntelliJ Compiles Modules Perfectly But Maven Compile Task FailsIntelliJ 完美编译模块但 Maven 编译任务失败
【发布时间】:2020-11-22 20:23:48
【问题描述】:

我有一个包含 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 执行是确定性的,但是你运行它的每 3 次失败 2 次?当它确实失败时,您获得的唯一信息是您提供的错误消息?我用 Maven 做了很多事情,这两种行为都让我感到惊讶。 - 如果这就是我们必须继续进行的全部内容,那么您获得帮助的最佳机会就是如果这与其他人看到的行为相匹配。除了询问是否有任何其他信息之外,我不知道该怎么办?
  • 我用 Maven 做了很多事情,这些行为让我震惊。没有代码更改,但是一个模块会编译两次失败然后成功。相同的代码。
  • 这就是您在 Maven 输出中获得的所有附带信息?
  • 如果相关的话,我很乐意发布更多信息。我不会拒绝任何可以帮助我的人。
  • 所以我猜这是“是”,这就是我两次询问时都在寻找的所有内容。请原谅我假设您认为我只是在询问相关信息。

标签: java maven intellij-idea java-8 maven-plugin


【解决方案1】:

我找到了答案。

当我使用maven.compiler.sourcemaven.compiler.target 默认变量名时,我遇到了问题。

用自定义变量名称common-modules.compiler.sourcecommon-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>

【讨论】:

    猜你喜欢
    • 2011-03-09
    • 1970-01-01
    • 2021-10-07
    • 2013-03-07
    • 2018-11-22
    • 2021-11-19
    • 2012-10-02
    相关资源
    最近更新 更多