2009-11-17 12 views
5

Per i test unitari, le dimostrazioni e le attività di Hibernate mi piacerebbe utilizzare un database Java semplice e piccolo come Derby/Java DB o HSQLDB, che può essere richiamato da Maven.Leggero database Java con plugin Maven per l'avvio/l'arresto?

Finora non ho trovato un plug-in Maven che può scaricare e avviare il DB Java (che è il mio preferito al momento) o qualcosa di simile.

+0

perché avresti bisogno di un plugin per avviare un db specifico ?? – jitter

+0

integrazione continua, unit test, dimostrazioni con il minor numero possibile di interazione e configurazione - basta lanciare "mvn test" e quindi usare JPA per creare una tabella per esempio – mjn

risposta

6

Una semplice configurazione per i test unitari è quello di iniziare hsqldb in memoria: Stop necessaria

db.connection.driver_class=org.hsqldb.jdbcDriver 
db.connection.url=jdbc:hsqldb:mem:aname 
db.connection.username=sa 
db.connection.password= 
hibernate.dialect=org.hibernate.dialect.HSQLDialect 

No inizio e. Il driver JDBC "avvierà" il database.

Si può usare anche per le dimostrazioni. Se stai inizializzando il database mentre le applicazioni si avviano.

L'installazione del database può essere eseguita con hibernate.hbm2ddl.auto.


Edit by kdgregory:

Per avere Maven includere HSQLDB nelle dipendenze solo per la fase di test, utilizzare questo nel vostro POM:

<dependency> 
    <groupId>hsqldb</groupId> 
    <artifactId>hsqldb</artifactId> 
    <version>1.8.0.7</version> 
    <scope>test</scope> 
</dependency> 
0

Non ho idea se supporta ciò di cui hai bisogno, ma SQLite è così immensamente popolare che sembra avere plugin di integrazione con qualsiasi cosa. Controlla.

2

Come descritto in my answer here, è possibile utilizzare Derby come database tramite il plugin derby-maven che ho scritto ed è disponibile su GitHub e tramite Maven Central. Con Derby come database in memoria per i test, la tua vita sarebbe semplice, in termini di CI: non è necessario installare e configurare un bit esterno di software solo per i test, quando puoi semplicemente fare tutto con Maven.