2011-11-21 15 views
5

Estoy tratando de usar Liquibase Oracle extensions desde maven-liquibase-plugin pero no puedo hacerlo funcionar. No tengo ningún problema con el mismo fichero de cambios desde la línea de comandos, pero en Maven me sale el siguiente mensaje de errorUso de las extensiones de Liquibase con Maven

SEVERE 21/11/11 14:49:liquibase: Error thrown as a SAXException: Unknown Liquibase extension: dropTrigger. Are you missing a jar from your classpath? 

El fichero de cambios que estoy usando

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ora="http://www.liquibase.org/xml/ns/dbchangelog-ext" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd"> 
    <changeSet author="PE1926" id="ONCHANGE" runOnChange="true"> 
    <ora:dropTrigger schemaName="" triggerName="TRIGGER_01"/> 
    <rollback> 
     <sqlFile path="latest/trg/TRIGGER_01.sql" endDelimiter="$"/> 
    </rollback> 
</changeSet> 

Aquí es un extracto pom.xml

[...] 
<dependencies> 
    <dependency> 
     <groupId>com.oracle</groupId> 
     <artifactId>ojdbc14</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.liquibase.ext</groupId> 
     <artifactId>liquibase-oracle</artifactId> 
     <version>1.2.0</version> 
    </dependency> 
</dependencies> 

<build> 
    <plugins>  
     <plugin> 
      <groupId>org.liquibase</groupId> 
      <artifactId>liquibase-maven-plugin</artifactId> 
      <version>2.0.3</version> 
      <executions> 
       <execution> 
        <phase>process-resources</phase> 
        <goals><goal>status</goal></goals> 
       </execution> 
      </executions> 
      <configuration> 
       <changeLogFile>src/main/resources/update.xml</changeLogFile>  
       <propertyFile>${db-resources.dir}/liquibase.properties</propertyFile> 
       <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase> 
       <verbose>true</verbose> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

También traté de agregar liquibase-oracle como dependencia de complementos, pero recibo el mismo mensaje de error.

¿Es esta la forma correcta de usar las extensiones de Liquibase de Maven? ¿Me estoy perdiendo de algo?

+0

no soy un usuario Liquibase sin embargo expresar la dependencia de un plugin que tiene añadir una sección 'dependencies' ** dentro de ** el elemento 'plugin'. –

+0

Como dije intenté agregar liquibase-oracle como una dependencia de plugin sin suerte. Sin embargo, intenté agregarlos como dependencias de complementos y parece que funciona. ¿Me escribirías una respuesta para que la aceptara? – fglez

+0

Lo haré en un momento. –

Respuesta

7

Agregue todas las dependencias de liquibase como dependencias del complemento.

+0

Estúpidamente simple ... Debería haberlo entendido, pero es tarde y he bebido demasiado café. ¡Gracias! –

0

que no necesitaba añadir cualquier otro dependencias - esto lo hizo por mí:

<pluginManagement> 
    <plugin> 
    <groupId>org.liquibase</groupId> 
    <artifactId>liquibase-maven-plugin</artifactId> 
    <version>${version.liquibase}</version> 
    <configuration> 
     <propertyFileWillOverride>true</propertyFileWillOverride> 
     <driver>oracle.jdbc.OracleDriver</driver> 
     <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase> 
     <changeLogFile>liquibase-master-changelog.xml</changeLogFile> 
     <!-- ensure a liquibase.properties is available in each module that runs liquibase --> 
     <propertyFile>liquibase.properties</propertyFile> 
    </configuration> 
    <dependencies> 
     <dependency> 
     <groupId>org.liquibase.ext</groupId> 
     <artifactId>liquibase-oracle</artifactId> 
     <version>${version.liquibase.ora-ext}</version> 
     </dependency> 
    </dependencies> 
    <executions> 
     <execution> 
     <phase>test-compile</phase> 
     <goals> 
      <goal>update</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
</pluginManagement> 
+0

Agregó todas las dependencias de liquibase como dependencias de complementos. Ver http://stackoverflow.com/a/8215645/33622 – fglez

Cuestiones relacionadas