sql - 在 Maven 中发布 SQL 工件
问题描述
我如何告诉 Maven 也为 DBA 发布 SQL 工件?
事情是这样的:当我们发布 Maven 应用程序的每个新版本时,我们需要发布两个工件:
- Web 应用程序(例如
app-1.2.0.war
文件)——用于 WebSphere 人。 - 此版本的数据库更改(例如
dba-1.2.0.sql
文件)- 为 DBA。
SQL 更改文件当前为src/main/database/dba.sql
,但如有必要,我可以更改该目录或文件名。
到目前为止,Maven 自动将战争工件 ( mvn clean deploy
) 发布到工件存储库,这非常完美。但是,我希望它在同一命令中同时发布 SQL 文件……但它没有。
我怎样才能做到这一点?
我看到我们可以告诉 Maven 立即发布额外的工件(例如源代码、javadoc),所以我想也应该可以发布 SQL 文件,但这只是一个猜测。
解决方案
您可以为此使用 Build Helper 插件。
但是文件名是根据 artifactid、版本、类型和分类器计算出来的。
如果您需要使用不同的 artifactId 绝对推送不同的名称,您将需要mvn deploy:deploy-file ...
(通过 CI 中的命令或 pom 中的 ant 脚本)或创建一个额外的 pom 文件并针对它启动 maven。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>src/main/database/dba.sql</file>
<type>sql</type>
<!-- <classifier>xxx</classifier> -->
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
源链接: https: //www.mojohaus.org/build-helper-maven-plugin/usage.html
推荐阅读
- node.js - Node.js - 异步 - if 语句中的多个内部回调
- orientdb - 是否可以在 orientjs 中使用带有 Classes API 的事务?
- javascript - Giphy API调用乱序返回结果
- php - PHP在重定向之前加载页面
- java - 无法为情况编写 Antlr3 规则
- python - 在Django中提交表单时如何保留现有的查询字符串?
- java - Spring Boot 版本从 1.5.8 更改为 2.0.0
- angular - 如何在 ionic 3 中使用日期选择器插件
- proxy - 如何使用 CUBA Studio 创建应用程序?
- php - Laravel SQLSTATE [42S22]:找不到列:1054