【问题标题】:Release a SQL artifact in Maven在 Maven 中发布 SQL 工件
【发布时间】:2020-01-24 03:32:59
【问题描述】:

我如何告诉 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 文件,但这只是一个猜测。

【问题讨论】:

    标签: sql maven-3 publishing artifact


    【解决方案1】:

    您可以为此使用 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

    【讨论】:

    • “将其他工件附加到您的项目”部分看起来很有希望。现在将进行测试。谢谢。
    • “构建助手插件”是解决此问题的方法。非常感谢!
    • 我可以再问你一个问题吗?文件的实际位置是src/main/database-source/${project.version}/dba.sql。如果该文件不存在(它发生在较小的版本更改中)此插件会崩溃。 SQL文件不存在时如何跳过它的执行?
    • 您可以将插件设置为配置文件并使用文件上的条件启用它:maven.apache.org/pom.html#Activation
    猜你喜欢
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2021-03-27
    • 2021-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多