如何在 Liquibase ant 配置中指定 oracle odbjc.jar
How to specify oracle odbjc.jar in Liquibase ant configuration
我有以下蚂蚁配置:
<project name="pcebuild" basedir="." default="updateDatabase" xmlns:liquibase="antlib:liquibase.integration.ant" >
<taskdef resource="liquibase/integration/ant/antlib.xml" uri="antlib:liquibase.integration.ant">
<classpath path="c:\Users\artur.skrzydlo\Documents\liquibase-3.3.2-bin\liquibase.jar"/>
</taskdef>
<property name="liquiChangeLogFile" value="${basedir}/liquibase/db.changelog-master.xml"/>
<property name="db.driver" value="oracle.jdbc.OracleDriver"/>
<property name="db.url" value="jdbc:oracle:thin:@websph:1521:XE"/>
<target name="updateDatabase" description="Updates database with new changes using Liquibase">
<liquibase:updateDatabase changeLogFile="${liquiChangeLogFile}" >
<liquibase:database driver="${db.driver}" url="${db.url}" user="${db.user}" password="${db.pasword}"/>
</liquibase:updateDatabase>
</target>
</project>
在 运行 执行此任务后我收到错误消息:
Class not found: oracle.jdbc.OracleDriver
根据文档:
driver The fully qualified class name of the JDBC driver.
我想这个错误可能会增加,因为没有地方可以放置我的 ojdbc.jar 文件的类路径。我可以从命令行 运行 这个更新命令,但是我可以指定 "classpath" 指向我的 ojdbc.jar 文件的参数。而且我在这个 ant 任务定义中看不到任何地方,我可以在哪里放置这样的路径。我怎样才能做到这一点 ?我做错了什么?
在您的 <liquibase:updateDatabase>
标签中,您可以有一个 classpathref
属性。所以我有这样的东西:
<path id="driver.classpath">
<filelist files="${classpath}" />
</path>
...
<liquibase:updateDatabase
databaseref="main-schema"
changelogfile="${changeLogFile}"
classpathref="driver.classpath"
logLevel="debug"
>
...
并且 ${classpath}
是 Ant 属性,在属性文件中设置:
classpath: /Users/me/place/lib/classes12.jar
我有以下蚂蚁配置:
<project name="pcebuild" basedir="." default="updateDatabase" xmlns:liquibase="antlib:liquibase.integration.ant" >
<taskdef resource="liquibase/integration/ant/antlib.xml" uri="antlib:liquibase.integration.ant">
<classpath path="c:\Users\artur.skrzydlo\Documents\liquibase-3.3.2-bin\liquibase.jar"/>
</taskdef>
<property name="liquiChangeLogFile" value="${basedir}/liquibase/db.changelog-master.xml"/>
<property name="db.driver" value="oracle.jdbc.OracleDriver"/>
<property name="db.url" value="jdbc:oracle:thin:@websph:1521:XE"/>
<target name="updateDatabase" description="Updates database with new changes using Liquibase">
<liquibase:updateDatabase changeLogFile="${liquiChangeLogFile}" >
<liquibase:database driver="${db.driver}" url="${db.url}" user="${db.user}" password="${db.pasword}"/>
</liquibase:updateDatabase>
</target>
</project>
在 运行 执行此任务后我收到错误消息:
Class not found: oracle.jdbc.OracleDriver
根据文档:
driver The fully qualified class name of the JDBC driver.
我想这个错误可能会增加,因为没有地方可以放置我的 ojdbc.jar 文件的类路径。我可以从命令行 运行 这个更新命令,但是我可以指定 "classpath" 指向我的 ojdbc.jar 文件的参数。而且我在这个 ant 任务定义中看不到任何地方,我可以在哪里放置这样的路径。我怎样才能做到这一点 ?我做错了什么?
在您的 <liquibase:updateDatabase>
标签中,您可以有一个 classpathref
属性。所以我有这样的东西:
<path id="driver.classpath">
<filelist files="${classpath}" />
</path>
...
<liquibase:updateDatabase
databaseref="main-schema"
changelogfile="${changeLogFile}"
classpathref="driver.classpath"
logLevel="debug"
>
...
并且 ${classpath}
是 Ant 属性,在属性文件中设置:
classpath: /Users/me/place/lib/classes12.jar