2013-05-03 68 views
0

我想並填寫兩個不同的數據庫與Maven項目集成測試。我用的是sql-maven-plugin,但我不能讓它處理不同的數據庫(我只能有一個插件聲明的sql-maven-pluginconfiguration是其executions之間共享)。sql-maven-plugin:清理多個數據庫?

你們如何解決?有沒有解決這個問題的解決方法?

在此先感謝!

回答

3

你可以簡單地定義所有configuration的每一個人execution部分中,並根據需要配置。而不是共享配置。

所以這裏有一個例子來連接兩個不同的HSQLDB數據庫:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>sql-maven-plugin</artifactId> 
    <version>1.5</version> 

    <dependencies> 
     <dependency> 
     <groupId>org.hsqldb</groupId> 
     <artifactId>hsqldb</artifactId> 
     <version>2.2.9</version> 
     </dependency> 
     <!-- you could add dependencies to other database drivers here --> 
    </dependencies> 

    <executions> 
     <!-- execution against database 1 --> 
     <execution> 
     <id>database1</id> 
     <phase>process-test-resources</phase> 
     <goals> 
      <goal>execute</goal> 
     </goals> 
     <!-- specific configuration for execution against database1 --> 
     <configuration> 
      <driver>org.hsqldb.jdbcDriver</driver> 
      <url>jdbc:hsqldb:hsql://localhost:9999/database1</url> 
      <username>sa</username> 
      <password></password> 
      <sqlCommand>select count(TYPE_NAME) from INFORMATION_SCHEMA.SYSTEM_TABLES</sqlCommand> 
     </configuration> 
     </execution> 
     <!-- execution against database 2 --> 
     <execution> 
     <id>database2</id> 
     <phase>process-test-resources</phase> 
     <goals> 
      <goal>execute</goal> 
     </goals> 
     <!-- specific configuration for execution against database2 --> 
     <configuration> 
      <driver>org.hsqldb.jdbcDriver</driver> 
      <url>jdbc:hsqldb:hsql://localhost:8888/database2</url> 
      <username>sa</username> 
      <password></password> 
      <sqlCommand>select count(TYPE_NAME) from INFORMATION_SCHEMA.SYSTEM_TABLES</sqlCommand> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
+0

我嘗試這樣的事情,卻引起了我,我沒有看到任何的sql-Maven的插件執行的,奇怪的。可能我犯了一些錯誤(儘管我也有一個外層配置)。要檢查它,謝謝! – rlegendi 2013-05-03 11:31:47

+0

你需要確保你給每個執行部分的唯一'id'標籤,否則我認爲他們可能互相覆蓋。我使用了本地給出的例子,它沒有任何問題。 – DB5 2013-05-03 11:33:56

+0

是的,他們的ID是不同的,讓我檢查一下我是否可以應用這個解決方案。 – rlegendi 2013-05-03 11:36:40