Я пытаюсь добавить свойство глобальной версии в мой мультимодуль
Проект Maven, так что я могу легко обновить версию всех
модули путем обновления одного свойства, а не нескольких пом
файлы. Проблема в том, что это свойство нарушает
сборочный плагин, который собирает jar-файлы модуля компиляции в zip
папка для раздачи. Когда версия была жестко запрограммирована во всех
файлы пом, все работало плавно. Когда я перешел в
свойство, однако, отдельные модули jar все еще скомпилированы,
но шаг Maven-Assembly-Plugin не удалось после следующего
предупреждение: «[ПРЕДУПРЕЖДЕНИЕ] Следующие шаблоны никогда не запускались
в этом артефакте фильтр включения "
Кажется, что в сборочных фильтрах отсутствуют модули, я просто не могу
объясните, почему это происходит, когда я использую глобальное свойство, или как
чтобы исправить это.
Структура проекта:
MyProject
--ModuleA
pom.xml
--ModuleB
pom.xml
--Distribution
src\main\assembly\distribution-assembly.xml
pom.xml
pom.xml
MyProject / pom.xml:
<groupId>com.mycompany</groupId>
<artifactId>MyProject</artifactId>
<packaging>pom</packaging>
<version>${global.version}</version>
<properties>
<global.version>1.0.1-SNAPSHOT</global.version>
</properties>
ModuleA / pom.xml:
<parent>
<artifactId>MyProject</artifactId>
<groupId>com.mycompany</groupId>
<version>${global.version}</version>
</parent>
<artifactId>ModuleA</artifactId>
ModuleB / pom.xml:
<parent>
<artifactId>MyProject</artifactId>
<groupId>com.mycompany</groupId>
<version>${global.version}</version>
</parent>
<artifactId>ModuleB</artifactId>
Распределение / pom.xml:
<parent>
<artifactId>MyProject</artifactId>
<groupId>com.mycompany</groupId>
<version>${global.version}</version>
</parent>
<packaging>pom</packaging>
<artifactId>Distribution</artifactId>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<descriptors>
<descriptor>
src/main/assembly/distribution-assembly.xml
</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>
single
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Распределение / SRC / главная / сборка / распределение-assembly.xml:
<id>bin</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<moduleSets>
<moduleSet>
<useAllReactorProjects>true</useAllReactorProjects>
<includes>
<include>com.mycompany:ModuleA</include>
<include>com.mycompany:ModuleB</include>
</includes>
<binaries>
<outputDirectory>MyBuildFolder</outputDirectory>
<outputFileNameMapping>mycompany${module.artifactId}.${module.extension}</outputFileNameMapping>
<unpack>false</unpack>
</binaries>
</moduleSet>
<moduleSets>
Внимание:
[WARNING] The following patterns were never triggered in this artifact
inclusion filter:
o 'com.mycompany:ModuleA'
o 'com.mycompany:ModuleB'
Ошибка:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-
plugin:2.4:single (make-assembly) on project Distribution:
Failed to create assembly: Error creating assembly archive bin: You must
set at least one file. -> [Help 1]