2013-01-25 74 views
4

我想用maven启动和停止hsqldb。 我想在测试阶段之前启动具有特定配置(数据库)的hsqldb服务器,并在之后停止它,并且在应用程序启动之前和之后与其他配置相同。如何使用maven启动/停止hsqldb?

此刻,我开始HSQLDB使用Maven Exec插件,但问题是,在服务器启动挡住了完整的Maven构建过程中(命中CTRL + Ç停止服务器。) 也有没有办法自动停止服务器。

问候

Hemeroc

+0

请参阅http://stackoverflow.com/questions/3018066/starting-and-stopping-hsqldb-from-unit-tests –

+0

对不起,但这并不解决任何问题。我不使用休眠,我不想使用源代码启动/停止hsqldb,我想使用Maven来启动/停止它。 – Hemeroc

回答

7

检查我的HSQLDB Maven插件: https://github.com/avianey/hsqldb-maven-plugin

你可以只启动/停止它像码头,Maven的插件或tomee - Maven的插件:

<plugin> 

    <!-- current version --> 
    <groupId>fr.avianey.mojo</groupId> 
    <artifactId>hsqldb-maven-plugin</artifactId> 
    <version>1.0.0</version> 

    <!-- 
     default value for in memory jdbc:hsqldb:hsql://localhost/xdb 
     override only values you want to change 
    --> 
    <configuration> 
     <driver>org.hsqldb.jdbcDriver</driver> 
     <path>mem:test</path> 
     <address>localhost</address> 
     <name>xdb</name> 
     <username>sa</username> 
     <password></password> 
     <validationQuery>SELECT 1 FROM INFORMATION_SCHEMA.SYSTEM_USERS</validationQuery> 
    </configuration> 

    <!-- call start and stop --> 
    <executions> 
     <execution> 
      <id>start-hsqldb</id> 
      <phase>pre-integration-test</phase> 
      <goals> 
       <goal>start</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>stop-hsqldb</id> 
      <phase>post-integration-test</phase> 
      <goals> 
       <goal>stop</goal> 
      </goals> 
     </execution> 
    </executions> 

</plugin> 
+1

它在maven中心有** 0用法**,但集成测试几乎包含在世界上几乎所有的java企业项目中。所以,这个插件绝对不应该使用! (除了一个宠物项目)但不幸的是,正如我们所看到的,即使在宠物项目中也没有人需要它。 – ieXcept