2011-11-21 16 views
5

Sto cercando di utilizzare Liquibase Oracle extensions da maven-liquibase-plugin ma non riesco a farlo funzionare. Non ho alcun problema con lo stesso file changelog dalla riga di comando, ma in Maven ricevo il seguente messaggio di erroreUtilizzo delle estensioni 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? 

Il file changelog che sto 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> 

Ecco un estratto 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> 

Ho anche provato ad aggiungere liquibase-oracle come dipendenza del plugin ma ottengo lo stesso messaggio di errore.

È questo il modo corretto di utilizzare le estensioni Liquibase di Maven? Mi sto perdendo qualcosa?

+0

io non sono un utente Liquibase tuttavia di esprimere la dipendenza di un plugin avete aggiungere una sezione 'dependencies' ** all'interno ** l'elemento 'plugin'. –

+0

Come indicato ho provato ad aggiungere liquibase-oracle come dipendenza da plugin senza fortuna. Tuttavia, ho provato ad aggiungerli tutti come dipendenze plugin e sembra funzionare. Scriveresti una risposta per me da accettare? – fglez

+0

Farà in un po '. –

risposta

7

Aggiungi tutte le dipendenze di liquibase come le dipendenze del plug-in .

+0

Stupidamente semplice ... Avrei dovuto capirlo, ma è tardi e ho bevuto troppo caffè. Grazie! –

0

Non avevo bisogno di aggiungere eventuali altre dipendenze - questo ha fatto per me:

<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

Hai aggiunto tutte le dipendenze di liquibase come dipendenze del plugin. Vedi http://stackoverflow.com/a/8215645/33622 – fglez

Problemi correlati