У нас есть многомодульный проект со следующими модулями:
- База данных
- Постоянство
- Бизнес
- Приложение
Проект 'Database' - это проект jar, который создает дополнительную сборку с помощью 'maven-assembly-plugin'.Эта дополнительная сборка содержит схему базы данных.
Конфигурация плагина выглядит следующим образом:
<plugin>
<!-- create a zip file that contains all the db migration scripts. -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>attach-schema</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>db-schema-descriptor.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
Проект «Приложение» создает сжатую версию структуры каталога приложения.Поэтому он ссылается на сборку схемы, чтобы извлечь и скопировать ее в соответствующее место в структуре каталога приложения.Ссылка выражается в виде обычной зависимости maven:
<dependency>
<groupId>my.application</groupId>
<artifactId>persistence</artifactId>
<version>0.0.1-SNAPSHOT</version>
<classifier>db-schema</classifier>
</dependency>
По крайней мере, существует многомодульный проект, объединяющий 4 подмодуля для создания приложения за один шаг.
Выполнение 'mvn deploy 'на агрегатном проекте работает отлично.Сборка схемы базы данных извлекается и копируется.Но при запуске mvn release: prepare для сборочного проекта, проект «Приложение» завершается неудачно с уведомлением об ошибке, что maven не может найти сборку схемы с версией «0.0.1».В файле журнала указывается, что проект «Постоянство» был создан до проекта «Приложение» и что сборка «Схема базы данных» была создана.
Кто-нибудь знает, что я делаю неправильно?