Groovy Основной метод в подмодуле maven, который автоматически не компилируется перед запуском - PullRequest
0 голосов
/ 27 июня 2019

У меня есть многоканальный проект maven. Когда я запускаю метод main в классном классе, который находится в одном из подмодулей, intellij не перекомпилируется перед запуском. Он всегда запускает версию, скомпилированную последним, когда я вручную инициировал maven: compile. Я не помню, чтобы мне приходилось делать это вручную или устанавливать какие-либо особые настройки проекта intellij в прошлом, чтобы это работало.

Я попытался повторно импортировать мой проект, несколько воплощений обновлений для моих poms, а затем, в конечном счете, мне пришлось создать конфигурацию запуска, в которой я указываю конфигурацию «До запуска», которая сначала выполняет компиляцию mvn. Это похоже на взлом. Мне неясно, связана ли моя проблема с плохо сконструированным набором poms, или я действительно пропускаю некоторую конфигурацию intellij.

Это работает в первый раз

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

но если я добавлю еще один оператор печати, такой как панель печати, вывод программы печатает только 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 config, если проблема связана с этим, или предоставить скриншоты intellij config. Я подозреваю, что intellij является корнем проблемы, потому что mvn compile и mvn clean install работают как с файлом на родительском, так и на всех подмодулях. У меня нет проблем со ссылкой на MyClass1 из MyClass2; Кажется, что зависимости установлены правильно.

1 Ответ

0 голосов
/ 27 июня 2019

Убедитесь, что у вас есть Build шаг в Перед запуском добавлен раздел Run Configuration:

enter image description here

...