在 Maven 中发布 SQL 工件



如何告诉Maven也发布DBA的SQL工件?

事情是这样的:当我们发布Maven应用程序的每个新版本时,我们需要发布两个工件:

  • 网络应用程序(例如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 文件,但这只是一个猜测。

您可以使用构建助手插件来实现这一点。

但是文件名是根据工件、版本、类型和分类器计算得出的。

如果您需要使用不同的 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

最新更新