2017-03-22 3 views
0

ich Liquibase Maven Plugin für Oracle 12c Datenbank verwende und ich die folgende Fehlermeldung erhalten das Update Befehl ausgeführt wird:Liquibase Maven Plugin funktioniert nicht

fehlgeschlagen Ziel org.liquibase auszuführen: Liquibase-Maven-Plugin 3.4.1: Update (default) auf Projektliquibase: Fehler Liquibase Einrichtung oder ausgeführt wird: liquibase.exception.DatabaseException: java.sql.SQLException: ORA-28040: Protokoll

keine passende Authentifizierungs sah ich die relevanten Überlauf-Stack-Beiträge in Bezug auf dieses Problem, die vorgeschlagen, Änderungen an der Datei sqlnet.ora, aber den folgenden Befehl w Befehlszeile orks perfekt durch, indem die genau gleiche Changelog mit:

java -jar ~/.m2/repository/org/liquibase/liquibase-core/3.5.3/liquibase-Core-3.5.3.jar - -driver = oracle.jdbc.OracleDriver --classpath =/Benutzer/nsalvi/Downloads/ojdbc6.jar --url = "falsche URL" --username = "falscher Benutzername" --password = "falsches Passwort" --changeLogFile = /Users/nsalvi/Downloads/liquibase-example-master-2/src/main/resources/db/dbChangelog.xml aktualisieren

Above ich den Treiber-Klassenpfad vorhanden auf meinem lokalen bin Referenzierung.

Mein Pom-Schnipsel sieht wie folgt aus:

<plugin> 
     <groupId>org.liquibase</groupId> 
     <artifactId>liquibase-maven-plugin</artifactId> 
     <version>${liquibase.version}</version> 
     <configuration> 
      <propertyFileWillOverride>true</propertyFileWillOverride> 
      <propertyFile>src/main/resources/liquibase.properties</propertyFile> 
     </configuration> 
     <executions> 
      <execution> 
       <phase>process-resources</phase> 
       <goals> 
        <goal>update</goal> 
       </goals> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
       <groupId>com.oracle</groupId> 
       <artifactId>ojdbc6</artifactId> 
       <version>${oracle.version}</version> 
      </dependency> 
     </dependencies> 
    </plugin> 

Wenn ich laufen Maven installiere ich das nicht Authentifizierungsprotokoll Fehler. Meine Datenbank Changelog ist wie folgt:

liquibase.properties:

contexts: local 
changeLogFile: db/dbChangelog.xml 
driver: oracle.jdbc.OracleDriver 
url: fake url 
username: fake username 
password: fake password 
verbose: true 
dropFirst: false 

dbChangelog.xml:

<databaseChangeLog 
    xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.8" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.8 
     http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.8.xsd"> 
    <preConditions> 
     <dbms type="oracle" /> 
     <runningAs username="fake" /> 
    </preConditions> 

    <changeSet id="1" author="nishant"> 
     <preConditions onFail="WARN"> 
      <sqlCheck expectedResult="9">select count(*) from CA_PROJECT_T</sqlCheck> 
     </preConditions> 
     <comment>Comments should go after preCondition. If they are before then liquibase usually gives error.</comment> 
    </changeSet> 
</databaseChangeLog> 

Gibt es etwas, dass ich fehle. P.S.- Das Maven-Plugin funktionierte perfekt, wenn die fragliche Datenbank mysql statt oracle war und ich glaube nicht, dass Änderungen in der sqlnet.ora-Datei das Problem sind, da die Abfrage perfekt funktioniert, wenn sie von der Kommandozeile aus ausgeführt wird.

Vielen Dank im Voraus!

Antwort

0

Sie eine der folgenden Phasen verwenden können (von Maven Website genommen): validate - Validierung des Projekts korrekt ist und alle notwendigen Informationen

  • Kompilierung verfügbar ist - den Quellcode des Projekts kompilieren
  • Test - Testen Sie den kompilierten Quellcode mit einem geeigneten Unit-Test-Framework. Bei diesen Tests sollte der Code nicht gepackt oder
  • -Paket bereitgestellt werden - nehmen Sie den kompilierten Code und verpacken Sie es in seinem verteilbaren Format, z. B. ein JAR.
  • überprüfen - alle Kontrollen über die Ergebnisse der Integrationstests laufen Qualitätskriterien erfüllt sind, um sicherzustellen,
  • installieren - das Paket in das lokale Repository installieren, für die Verwendung als eine Abhängigkeit in anderen Projekten lokal
  • deploy - im Build getan Umgebung, kopiert das endgültige Paket in das Remote-Repository für die Freigabe mit anderen Entwicklern und Projekten.
Verwandte Themen