【问题标题】:Liquibase maven plugin is not using classpath propertyLiquibase maven 插件未使用类路径属性
【发布时间】:2017-09-01 23:55:24
【问题描述】:

由于某种原因,当我在 liquibase.properties 文件中设置它时,Liquibase maven 插件没有使用我的属性。当我运行mvn liquibase:update 时,我得到以下信息。

[INFO] there are no resolved artifacts for the Maven project.
[INFO] Parsing Liquibase Properties File
[INFO]   File: target/classes/liquibase.properties
[INFO]   'classpath' in properties file is not being used by this task.

因此,更新失败,因为 liquibase 找不到驱动程序并且无法连接到数据库。

我看到了这个 SO 问题,但他们使用的是 liquibase 可执行文件而不是 maven。我以它为例说明如何使用 liquibase.properties 文件。

Setting up Liquibase with MS-SQL Server

我看到它在哪里遇到异常 L571 到 L588 异常,但实际的异常没有打印出来,所以我不知道错误的原因。

https://github.com/liquibase/liquibase/blob/9ae7f90a0bbbbcec229a0788afa74831db348ced/liquibase-maven-plugin/src/main/java/org/liquibase/maven/plugins/AbstractLiquibaseMojo.java#L573

【问题讨论】:

    标签: java maven liquibase


    【解决方案1】:

    您必须将驱动程序 jar 作为依赖项放在 maven POM 中,而不是在属性文件中设置类路径。

    请参阅documentation for the Liquibase Maven Task,尤其是描述不同 JDBC 依赖项的部分。这是一个sn-p:

    Maven Liquibase 更新示例

    您需要确保包含适用于您的相关 JDBC 驱动程序 Maven POM 文件的依赖部分中的数据库。

    MySQL 示例:

    <project>
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <!-- Replace with the version of the MySQL driver you want to use -->
                <version>${mysql-version}</version>
            </dependency>
        </dependencies>
    </project>
    

    【讨论】:

    • 是的!这似乎可以解决问题。我将 MSSQL 驱动程序添加到我的 POM 文件依赖项中并且它工作正常。
    【解决方案2】:

    就我而言,这是一个简单的复制和粘贴问题。

    liquibase.properties 中的属性driver 以空格结尾。删除空间后一切正常。

    driver: com.mysql.cj.jdbc.Driver

    driver: com.mysql.cj.jdbc.Driver

    【讨论】:

      【解决方案3】:

      这个answer 让我朝着正确的方向前进。就我而言,我需要声明 Maven 资源。

      <build>
          <resources>
            <resource>
              <directory>src/main/resources</directory>
              <filtering>true</filtering>
            </resource>
          </resources>
      </build>
      

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 2013-07-30
        • 2013-05-12
        • 2021-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-15
        相关资源
        最近更新 更多