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