0

我有一个 Maven 多模块 groovy 项目。当我在其中一个子模块中的 groovy 类中运行 main 方法时,intellij 在运行之前不会重新编译。当我手动启动 maven:compile 时,它​​总是运行上次编译的版本。我不记得过去必须手动执行此操作或设置任何特殊的 intellij 项目设置才能使其正常工作。

我尝试重新导入我的项目,对我的 pom 进行了几次更新,然后最终我不得不创建一个运行配置,在其中我指定了一个“启动前”配置,该配置首先执行 mvn compile。这似乎只是一个黑客。我不清楚我的问题是在一组构造不良的 pom 中,还是我真的错过了一些 intellij 配置。

这是第一次工作

class MyClass2 {
  static void main(String... args) {
    print("foo")
  }
}

但是如果我添加另一个打印语句,例如打印 bar,程序的输出只打印 foo 而不是 foo 和 bar。

class MyClass2 {
  static void main(String... args) {
    print("foo")
    print("bar")
  }
}

我的模块结构是这样的:

my-project
  module-1
    src/main/groovy/com/foo/MyClass2.groovy (Depends on Module1)
  module-2
    src/main/groovy/com/foo/MyClass1.groovy

我的这个子模块的 pom 文件有这个构建部分:

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.gmavenplus</groupId>
            <artifactId>gmavenplus-plugin</artifactId>
            <version>1.7.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>addSources</goal>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

如果问题根源在那里,我可以添加更多 pom 配置或提供 intellij 配置的屏幕截图。我怀疑 intellij 是问题的根源,因为 mvn compile 和 mvn clean install 仅适用于父模块和所有子模块的文件。我从 MyClass2 引用 MyClass1 没有任何问题;依赖项似乎设置正确。

4

1 回答 1

0

验证您是否在运行配置的启动前部分添加了构建步骤:

在此处输入图像描述

于 2019-06-27T07:33:31.357 回答