0
我想並填寫兩個不同的數據庫與Maven項目集成測試。我用的是sql-maven-plugin
,但我不能讓它處理不同的數據庫(我只能有一個插件聲明的sql-maven-plugin
和configuration
是其executions
之間共享)。sql-maven-plugin:清理多個數據庫?
你們如何解決?有沒有解決這個問題的解決方法?
在此先感謝!
我想並填寫兩個不同的數據庫與Maven項目集成測試。我用的是sql-maven-plugin
,但我不能讓它處理不同的數據庫(我只能有一個插件聲明的sql-maven-plugin
和configuration
是其executions
之間共享)。sql-maven-plugin:清理多個數據庫?
你們如何解決?有沒有解決這個問題的解決方法?
在此先感謝!
你可以簡單地定義所有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>
我嘗試這樣的事情,卻引起了我,我沒有看到任何的sql-Maven的插件執行的,奇怪的。可能我犯了一些錯誤(儘管我也有一個外層配置)。要檢查它,謝謝! – rlegendi 2013-05-03 11:31:47
你需要確保你給每個執行部分的唯一'id'標籤,否則我認爲他們可能互相覆蓋。我使用了本地給出的例子,它沒有任何問題。 – DB5 2013-05-03 11:33:56
是的,他們的ID是不同的,讓我檢查一下我是否可以應用這個解決方案。 – rlegendi 2013-05-03 11:36:40