Liquibase ANT Build.xml Oracle 驱动程序

Liquibase ANT Build.xml Oracle Driver

我正在尝试 运行 一个 ant 脚本来通过 liquibase 部署更改。

<project name="Example" xmlns:liquibase="antlib:liquibase.integration.ant">

    <taskdef 
        resource="liquibase/integration/ant/antlib.xml" 
        uri="antlib:liquibase.integration.ant">

        <classpath path="C:\liquibase\lib\liquibase\"/>

    </taskdef>

  <property name="db.changelog.file" value="C:\projects\lbdemo\trunk\db_v4.xml"/>
  <property name="database.url" value="jdbc:oracle:thin:@mydb:1521:ORCL"/>
  <property name="database.username" value="myuser"/>
  <property name="database.password" value="mypassword"/>
  <property name="database.driver" value="oracle.jdbc.OracleDriver"/>

  <liquibase:database id="my-database" driver="${database.driver}" url="${database.url}" user="${database.username}" password="${database.password}"/>

  <liquibase:updateDatabase databaseref="my-database" changelogfile="${db.changelog.file}"/>

</project>

安装路径:

测试

错误:

我在 运行 上面的 ANT 构建时收到以下错误:

C:\projects\lbdemo\trunk>ant

C:\projects\lbdemo\trunk\build.xml [liquibase:updateDatabase] Starting Liquibase.

BUILD FAILED C:\projects\lbdemo\trunk\build.xml:15: Class not found: oracle.jdbc.OracleDriver

Total time: 1 second

如何在 ant 中告诉 liquibase Oracle 驱动程序位于何处?

我提到了:http://www.liquibase.org/documentation/ant/index.html

这里的蚂蚁build.xml即运行成功。 ojdbc 驱动程序和 liquibase jar 都位于 C:\liquibase\;我在 updateDatabase 标签中引用了它:liquibase:updateDatabase classpathref="driver.classpath"

<project name="Example" xmlns:liquibase="antlib:liquibase.integration.ant">

  <path id="driver.classpath"> 
    <filelist dir="C:\liquibase\" > 
      <file name="ojdbc7.jar" /> 
      <file name="liquibase.jar" /> 
    </filelist> 
  </path>

  <property name="db.changelog.file" value="C:\projects\lbdemo\trunk\db_v4.xml"/>
  <property name="database.url" value="jdbc:oracle:thin:@mydb.rds.amazonaws.com:1521:ORCL"/>
  <property name="database.username" value="myuser"/>
  <property name="database.password" value="mypassword"/>
  <property name="database.driver" value="oracle.jdbc.OracleDriver"/>

  <liquibase:database id="my-database" driver="${database.driver}" url="${database.url}" user="${database.username}" password="${database.password}"/>

  <liquibase:updateDatabase classpathref="driver.classpath" databaseref="my-database" changelogfile="${db.changelog.file}"/>

</project>

更简单的方法是将所有必需的(liquibase.jar 和 ojdbc7.jar)库放入一个目录并使用路径 ID 引用它们。

<path id="liquibaseClasspath">
    <fileset dir="C:\projects\lbdemo\trunk\lib" includes="*.jar" />
</path>
<target name="Upgrade_db">
    <echo message="Upgrading DataBase" />
    <updateDatabase changeLogFile="C:\projects\lbdemo\trunk\db_v4.xml" driver="${database.driver}" url="${database.url}" username="${database.username}" password="${database.password}"  classpathref="liquibaseClasspath" />
</target>

您也可以在一个文件中提及所有目录位置,然后将该文件导入您的 ant 文件。