我们有一个包含以下模块的多模块项目:
- 数据库
- 持久性
- 商业
- 应用
“数据库”项目是一个 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”的模式程序集。日志文件指出“持久性”项目已在“应用程序”项目之前构建,并且“数据库模式”程序集已构建。
有人知道我做错了什么吗?