2017-04-06 1 views
1

Pour quelque raison, le plugin maven de Liquibase n'utilise pas ma propriété lorsque je l'ai défini dans mon fichier liquibase.properties. Quand je cours mvn liquibase:update j'obtiens l'INFO suivant. Pour cette raison, la mise à jour échoue car liquibase ne trouve pas le pilote et ne peut pas se connecter à la base de données. Par conséquent, la mise à jour échoue.Le plugin maven de Liquibase n'utilise pas la propriété classpath

J'ai vu cette question SO mais ils utilisent l'exécutable liquibase et non Maven. Je l'ai utilisé comme un exemple sur la façon d'utiliser le fichier liquibase.properties.

Setting up Liquibase with MS-SQL Server

Je vois où il frappe une exception L571 à L588 l'exception, mais l'exception réelle n'est pas imprimé, donc je ne connais pas la cause de l'erreur.

https://github.com/liquibase/liquibase/blob/9ae7f90a0bbbbcec229a0788afa74831db348ced/liquibase-maven-plugin/src/main/java/org/liquibase/maven/plugins/AbstractLiquibaseMojo.java#L573

Répondre

1

Plutôt que de définir le chemin de classe dans un fichier de propriétés, vous devez mettre le pot de pilote en tant que dépendance dans votre POM Maven.

Voir le documentation for the Liquibase Maven Task, et en particulier la section qui décrit les différentes dépendances JDBC. Voici un extrait:

Exemple de mise à jour Maven Liquibase

Vous devez vous assurer que vous incluez le pilote JDBC correspondant à votre base de données dans la section de dépendance du fichier POM Maven.

exemple MySQL:

<project> 
    <dependencies> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <!-- Replace with the version of the MySQL driver you want to use --> 
      <version>${mysql-version}</version> 
     </dependency> 
    </dependencies> 
</project> 
+1

Eh oui! Cela semble régler le problème. J'ai ajouté le pilote MSSQL à ma dépendance de fichier POM et cela a fonctionné. –