2011-11-21 37 views
5

Tôi đang cố gắng sử dụng Liquibase Oracle extensions từ maven-liquibase-plugin nhưng tôi không thể làm cho nó hoạt động. Tôi không có vấn đề với các tập tin changelog cùng từ dòng lệnh, nhưng trong Maven tôi nhận được thông báo lỗi sauSử dụng phần mở rộng Liquibase với 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? 

File changelog Tôi đang sử dụng

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

Đây là chiết xuất 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> 

Tôi cũng đã cố gắng thêm liquibase-oracle làm phụ thuộc plugin nhưng tôi nhận được thông báo lỗi tương tự.

Đây có phải là cách chính xác để sử dụng phần mở rộng Liquibase từ Maven không? Tui bỏ lỡ điều gì vậy?

+0

Tôi không phải là một người sử dụng Liquibase tuy nhiên để thể hiện sự phụ thuộc một plugin của bạn có thêm một 'phần dependencies' ** trong vòng ** phần tử 'plugin'. –

+0

Như đã nói, tôi đã cố gắng thêm liquibase-oracle làm phụ thuộc plugin không có may mắn. Tuy nhiên, tôi đã thử thêm tất cả chúng như phụ thuộc plugin và có vẻ như nó hoạt động. Bạn sẽ viết một câu trả lời cho tôi để chấp nhận? – fglez

+0

Sẽ làm một chút. –

Trả lời

7

Thêm tất cả phụ thuộc liquibase là phụ thuộc plugin.

+0

Ngớ ngẩn đơn giản ... Tôi nên tìm ra nó nhưng đã muộn và tôi đã có quá nhiều cà phê. Cảm ơn! –

0

tôi không cần thêm bất kỳ phụ thuộc khác - điều này đã làm nó cho tôi:

<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

Bạn đã thêm tất cả phụ thuộc liquibase làm phụ thuộc plugin. Xem http://stackoverflow.com/a/8215645/33622 – fglez

Các vấn đề liên quan