2017-03-22 1 views
0

J'utilise le plugin Maven Liquibase pour la base de données 12c Oracle et je reçois l'erreur suivante sur l'exécution de la commande de mise à jour:Liquibase plugin Maven ne fonctionne pas

Impossible d'exécuter but org.liquibase: liquibase-maven-plugin : 3.4.1: mise à jour (par défaut) sur le projet liquibase: erreur mise en place ou en cours d'exécution Liquibase: liquibase.exception.DatabaseException: java.sql.SQLException: ORA-28040: Aucun protocole d'authentification correspondant

je vis les pertinentes empiler les messages de débordement concernant ce problème qui a suggéré d'apporter des modifications au fichier sqlnet.ora, mais la commande suivante w orks parfait par la ligne de commande en utilisant exactement le même changelog:

java jar ~/.m2/repository/org/liquibase/liquibase-core/3.5.3/liquibase-core-3.5.3.jar - -driver = oracle.jdbc.OracleDriver --classpath =/Utilisateurs/nsalvi/Téléchargements/ojdbc6.jar --url = "fausse url" --username = "faux nom d'utilisateur" --password = "faux mot de passe" --changeLogFile = /Users/nsalvi/Downloads/liquibase-example-master-2/src/main/resources/db/dbChangelog.xml mise à jour

au-dessus, je suis référencement le chemin classe du pilote présent sur mon local.

Mon extrait de pom se présente comme suit:

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

Quand je lance maven installer je reçois l'erreur de protocole d'authentification non. Ma base de données changelog est la suivante:

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> 

Y at-il quelque chose que je suis absent. P.S.- Le plugin maven fonctionnait parfaitement lorsque la base de données en question était mysql au lieu d'oracle et je ne pense pas que faire des changements dans le fichier sqlnet.ora est le problème ici car la requête fonctionne parfaitement en ligne de commande.

Merci d'avance!

Répondre

0

Vous pouvez utiliser l'une des phases suivantes (extrait du site Maven): validate - valider le projet est correct et toutes les informations nécessaires sont disponibles

  • compilation - compiler le code source du projet Test - teste le code source compilé à l'aide d'un cadre de test unitaire approprié. Ces tests ne doivent pas exiger que le code soit empaqueté ou déployé
  • package - prenez le code compilé et empaquetez-le dans son format distribuable, tel qu'un fichier JAR.
  • vérifier - exécuter des contrôles sur les résultats des tests d'intégration pour garantir des critères de qualité sont satisfaits
  • installer - installer le package dans le référentiel local, pour une utilisation en tant que dépendance dans d'autres projets au niveau local
  • deploy - fait dans la construction environnement, copie le package final dans le référentiel distant pour le partager avec d'autres développeurs et projets.