2014-05-09 66 views
0

我試圖通過調用ANT腳本來調用maven中的org.h2.tools.RunScript類。H2 java.sql.SQLException:找不到合適的驅動程序

行家的樣子......

  <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <version>1.3</version> 
      <executions> 
      <execution> 
       <phase>validate</phase> 
       <goals> 
       <goal>run</goal> 
       </goals> 
       <configuration> 
        <tasks> 
      <property name="compile_classpath" refid="maven.compile.classpath"/> 
      <property name="runtime_classpath" refid="maven.runtime.classpath"/> 
      <property name="test_classpath" refid="maven.test.classpath"/> 
      <property name="plugin_classpath" refid="maven.plugin.classpath"/> 

         <echo>Starting DB</echo> 
         <ant antfile="${basedir}/dbbuild.xml" target="dbdo" /> 
        </tasks> 
       </configuration> 
      </execution> 
      </executions> 
     </plugin> 

ant腳本如下:

<project name="" default="make" basedir="."> 

<target name="make"> 

    <property value="." name="basedir" /> 
    <java classname="org.h2.tools.RunScript" 
     fork="true" 
     maxmemory="128m" > 
    <arg line="-user " /> 
    <arg value=" sa" /> 
    <arg line="-driver "/> 
    <arg value="org.h2.Driver" /> 
    <arg line="-url " /> 
    <arg value=" &quot;jdbc:h2:file:${basedir}\\mydb;LOCK_MODE=3&quot;"/> 
    <arg line="-script " /> 
    <arg value=" ${basedir}/src/main/resources/database/h2/testSchema.sql"/> 

    <classpath> 
     <pathelement path="${runtime_classpath}"/> 
    </classpath> 
    </java>      


</target> 

</project> 

,我不斷收到此錯誤:

[java] Exception in thread "main" java.sql.SQLException: No suitable driver 
found for jdbc:h2:file:C:\Apps\development\workspace\Phase3_1\directpay\quickpay 
\\mydb;LOCK_MODE=3 
[java]  at java.sql.DriverManager.getConnection(DriverManager.java:602) 
[java]  at java.sql.DriverManager.getConnection(DriverManager.java:185) 
[java]  at org.h2.tools.RunScript.process(RunScript.java:312) 
[java]  at org.h2.tools.RunScript.runTool(RunScript.java:140) 
[java]  at org.h2.tools.RunScript.main(RunScript.java:68) 
[java] Java Result: 1 
[INFO] Executed tasks 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] -------------------- 

的h2-1.3。 163.jar在類路徑中。任何幫助,將不勝感激。
謝謝

+0

不應該將該URL設爲'jdbc:h2:c:\ Apps \ ...'而不是'jdbc:h2:file:...'。您可能還想嘗試使用'/'而不是'\'作爲文件路徑。 –

+0

感謝您的評論。這兩個好的建議,但他們似乎並沒有分別或合併有所作爲。 – user2960967

回答

0

我發現了這個問題。 RunScript的文檔調用URL參數周圍的引號... [-help]或[ - ?]打印選項列表 [-url「<url>」]數據庫URL(jdbc:...)

我逃過了「在param的任一側,一旦我刪除了引號,它就可以正常工作。我將arg設置爲:

<arg line="-url" /> 
    <arg value="jdbc:h2:${basedir}\mydb;LOCK_MODE=3;TRACE_LEVEL_FILE=3"/> 
相關問題