Использование расширений Liquibase с Maven - PullRequest
5 голосов
/ 21 ноября 2011

Я пытаюсь использовать Расширения Liquibase Oracle из maven-liquibase-plugin , но не могу заставить его работать У меня нет проблем с тем же файлом changeLog из командной строки, но в 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?

Файл журнала изменений, который я использую

<?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>

Вот выдержка из 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>

Я также пытался добавить liquibase-oracle в качестве зависимости от плагина, но получаю то же сообщение об ошибке.

Это правильный способ использования расширений Liquibase от Maven? Я что-то упустил?

Ответы [ 2 ]

7 голосов
/ 21 ноября 2011

Добавить все зависимости ликвидазы как зависимости плагина .

0 голосов
/ 08 ноября 2013

Мне не нужно было добавлять какие-либо другие зависимости - это сделало это для меня:

<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>
...