У меня есть этот многомодульный проект.Выполнение скрипта из maven внутри проекта с несколькими модулями
В начале каждой сборки я хотел бы запустить некоторый файл bat.
Так я сделал следующее:
<profile>
<id>deploy-db</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.1.1</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>exec</goal>
</goals>
<inherited>false</inherited>
</execution>
</executions>
<configuration>
<executable>../database/schemas/import_databases.bat</executable>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
, когда я бегу mvn verify -Pdeploy-db
от корня я получаю этот скрипт выполняется снова и снова в каждом из моих модулей.
Я хочу, чтобы он выполнялся только один раз, в корневом модуле.
Что мне там не хватает?
Благодаря
Это «хороший» вопрос. Проблема здесь в том, что ** эффекты ** профиля наследуются, и плагин maven exec получает, таким образом, также исполняемый для всех детей. Нужно копать это (но я боюсь, что не будет чистого решения). –
Нет, действительно, я люблю Maven, это замечательно в его идее (например, коммунизм :-)). Но когда дело доходит до простых вещей, подобных этому, он абсолютно терпит неудачу .... Кажется, мне придется написать собственный плагин, чтобы сделать это чистым. – Roman