У меня есть многоканальный проект 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; Кажется, что зависимости установлены правильно.