В настоящее время я борюсь с Maven: у меня сложный проект, состоящий из нескольких вложенных модулей, и для некоторых из этих модулей у меня есть похожие конфигурации в POM.
Я бы хотел сделать это чистым. На самом деле, я хотел бы определить общую конфигурацию «runnable-jar» и активировать ее в некоторых модулях.
Вот фрагмент POM, которым я хотел бы поделиться между несколькими проектами:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- Use a custom descriptor, with suffix "bin" -->
<descriptors>
<descriptor>src/main/assembly/runnable-jar-assembly.xml</descriptor>
</descriptors>
<!-- Add main class to manifest -->
<archive>
<manifest>
<mainClass>${mainClass}</mainClass>
</manifest>
</archive>
</configuration>
<!-- Add build of this package to lifecycle -->
<executions>
<execution>
<id>make-runnable-jar</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
В некоторых из POMS я хотел бы иметь возможность сделать что-то вроде:
<!-- Set the main class -->
<properties>
<mainClass>my.main.Class</mainClass>
</properties>
<!-- Activate runnable jar build -->
<import>src/main/pom/runnable-jar-pom.xml</import>
Я искал средство для импорта некоторых фрагментов XML в POM или для определения целого макроса набора узлов XML.
Для того, что я обнаружил, самым близким решением было бы определить профиль в родительском POM и активировать его в некоторых подмодулях, проверяя наличие файла. См. Этот связанный вопрос . Но я сталкиваюсь с проблемой некорректного наследования / установки свойства {basedir}
.
Я нахожу очень удивительным, что нужен взлом, чтобы сделать что-то настолько простое (= обычно). Как вы обычно справляетесь с этим в Maven?