2009-12-28 5 views
1

Pour mon projet actuel, je souhaite intégrer un plug-in maven pour les migrations de base de données. Cependant, pour que ce plug-in fonctionne, je dois obtenir les paramètres de la base de données dans mon POM. Mes paramètres de base de données sont actuellement placés dans un fichier hibernate.properties, positionné dans un répertoire marqué comme ressource maven. Pour diverses raisons, je ne souhaite pas dupliquer mes configurations de base de données dans pom et hibernate.properties. Je suis conscient que maven offre une capacité de "filtrage" qui permet de spécifier les paramètres de la base de données comme propriété à l'intérieur de mon POM, et de les référencer dans mon hibernate.properties sous la forme ${property_name}. Mais comme j'utilise plusieurs profils Maven, avec des ressources de propriétés différentes, ce n'est pas une solution appropriée. Au lieu de cela, j'aimerais que mes configurations de base de données soient chargées à partir d'un fichier de propriétés dans mon chemin de classe (par exemple, classpath:hibernate.properties) et utilisez ces propriétés dans ma configuration de plug-in de migration.Récupérer la propriété de classpath dans POM

J'ai déjà essayé le fichier org.codehaus.mojo »properties-maven-plugin, mais ce plug-in n'accepte que les emplacements absolus. Y a-t-il un plug-in qui peut balayer toutes mes ressources maven pour une certaine propriété?

+0

Cela frise le raccourci "git'r'done" et ne répond pas à votre question, mais serait-ce trop de simplement passer la propriété dont vous avez besoin en -Dprop = valeur à votre invocation 'mvn'? – whaley

Répondre

0

Si vous avez besoin d'un chemin absolu, utilisez ${basedir}/your/relative/path/here/.... ${basedir} se développe au chemin absolu du répertoire de l'actuel pom.xml.

+0

mes fichiers de propriétés sont situés sur x quantité de ressources (mvn). Je ne peux pas simplement dire $ {basedir}/my_dir, car my_dir peut varier selon le profil sur lequel je lance mon projet mvn. – Jeroen

+1

Alors? Définissez une propriété par profil et utilisez $ {basedir} pour construire le chemin. –