У нас есть корпоративный родительский POM, который определяет, как создаются проекты.Мы также приобрели продукт (Visual Rules), который требует совершенно отдельной сборки с полностью отдельными плагинами.
Итак, естественное решение - использовать для этого профиль Maven.Однако плагины Visual Rules не проверяют, выполняются ли они для POM или для модуля.Это означает, что простая активация профиля (-Pvisual-rules
в моем случае) приведет к сбою сборки, так как плагины ищут определенные файлы, которых нет в родительском проекте, только в модулях.
профиль в корпоративном родительском POM выглядит следующим образом:
<profile>
<id>visual-rules</id>
<build>
<plugins>
<plugin>
<groupId>de.visualrules.builder</groupId>
<artifactId>visualrules-validation-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>validate</goal>
</goals>
</execution>
</executions>
</plugin>
...and other Visual Rules plugins
</plugins>
</build>
</profile>
(Если у кого-то есть лучшее решение о том, как пропустить сборку только для родительского проекта, не стесняйтесь комментировать ...)
Итак, активация в командной строке не работает.
Следующая возможность: активировать с помощью существующего файла: модули имеют специальные файлы Visual Rules в src/main/resources/
- и, конечно, родительский проект неУ меня нет файлов визуальных правил.Это означает, что я могу активировать профиль в родительском проекте, используя это:
<profiles>
<profile>
<id>visual-rules</id>
<activation>
<file>
<exists>src/main/resources</exists>
</file>
</activation>
</profile>
</profiles>
Используя mvn help:active-profiles clean package
Теперь я получаю следующий вывод:
10:10:31.788 [INFO] --- maven-help-plugin:3.1.0:active-profiles (default-cli) @ global-regeln ---
10:10:32.080 [INFO]
Active Profiles for Project 'foobar:global-regeln:pom:1.21.0-SNAPSHOT':
The following profiles are active:
- default (source: external)
- local (source: foobar:corporate-parent:1.52.0-SNAPSHOT)
Active Profiles for Project 'foobar:global-regeln-edossier-schlagwort-zu-doktyp:jar:1.21.0-SNAPSHOT':
The following profiles are active:
- default (source: external)
- visual-rules (source: foobar:global-regeln:1.21.0-SNAPSHOT)
- local (source: foobar:corporate-parent:1.52.0-SNAPSHOT)
Active Profiles for Project 'foobar:global-regeln-zahlungspflichtdatum-fuer-gebuehrtyp:jar:1.21.0-SNAPSHOT':
The following profiles are active:
- default (source: external)
- visual-rules (source: foobar:global-regeln:1.21.0-SNAPSHOT)
- local (source: foobar:corporate-parent:1.52.0-SNAPSHOT)
Active Profiles for Project 'foobar:global-regeln-fristberechnung:jar:1.21.0-SNAPSHOT':
The following profiles are active:
- default (source: external)
- visual-rules (source: foobar:global-regeln:1.21.0-SNAPSHOT)
- local (source: foobar:corporate-parent:1.52.0-SNAPSHOT)
Active Profiles for Project 'foobar:global-regeln-terminberechnung:jar:1.21.0-SNAPSHOT':
The following profiles are active:
- default (source: external)
- visual-rules (source: foobar:global-regeln:1.21.0-SNAPSHOT)
- local (source: foobar:corporate-parent:1.52.0-SNAPSHOT)
... Rest of the build, no Visual Rules plugin output!
Но хотя профиль visual-rules
отображается как активный, плагины в профиле не запускаются - почему?
Просто чтобы быть уверенным, я также начал сборку, используя mvn help:active-profiles clean package -Pvisual-rules
, и здесь плагины были запущены и вызвали проблему, описанную выше.
10:18:50.608 [INFO] ------------------------------------------------------------------------
10:18:50.608 [INFO] Reactor Summary:
10:18:50.608 [INFO]
10:18:50.608 [INFO] Globale Regeln ..................................... FAILURE [ 3.414 s]
10:18:50.608 [INFO] eDossierregeln-Schlagworte zu Dokumententypen ...... SKIPPED
10:18:50.608 [INFO] Globale Zahlungspflichtdatumberechnung-Regel ....... SKIPPED
10:18:50.608 [INFO] Globale Fristberechnung ............................ SKIPPED
10:18:50.608 [INFO] Globale Terminberechnung ........................... SKIPPED
10:18:50.608 [INFO] ------------------------------------------------------------------------
10:18:50.608 [INFO] BUILD FAILURE
10:18:50.608 [INFO] ------------------------------------------------------------------------
10:18:50.608 [INFO] Total time: 5.515 s
10:18:50.608 [INFO] Finished at: 2019-02-28T10:18:50+01:00
10:18:50.801 [INFO] Final Memory: 72M/793M
10:18:50.801 [INFO] ------------------------------------------------------------------------
10:18:50.803 [ERROR] Failed to execute goal de.visualrules.builder:visualrules-validation-maven-plugin:6.4.10:validate (default) on project global-regeln: RuleModel 'global-regeln-edossier-schlagwort-zu-doktyp' is not valid: Referenziertes Element "allgemein-regeln-fachdaten" nicht gefunden
Возможно, я не совсем понимаю активацию профиля Maven, но мне это кажется довольно странным ... Любая помощь действительно ценится!