2010-10-28 7 views
1

Supposons qu'il y ait 2 applications. La hiérarchie POM pourrait ressembler à ceci:Comment partager des propriétés de base de données dans des projets multi-modules Maven 3?

parent 
    --> system A 
    --> system B 

Les deux systèmes sont censés être en mesure de se connecter à la même base de données .

Chaque système a 2 profils: développement (DB embarqués) et production (MySQL).

Comment puis-je utiliser Maven pour partager les informations de connexion de base de données (utilisateur, chemin, chauffeur, etc.) pour chaque profil sur les deux systèmes (j'utilise le filtrage des ressources) ?

Répondre

0

Il suffit de stocker les propriétés pour ces informations dans le profil approprié.

+0

voulez-vous dire dans chaque système individuellement (redondance?) Ou dans le parent pom (je pensais que les profils n'héritent pas)? – stephanos

+0

Définissez le profil dans la racine pom et les propriétés de l'ensemble seront utilisées dans le projet dérivé (bien sûr seulement si vous utilisez une construction multimodule). – khmarbaise

+0

vient de le faire: ça marche :) thx! – stephanos

2

Faites attention lorsque vous décidez où les informations de connexion à la base de données seront stockées. Bien qu'il soit correct de stocker le pilote et l'URL dans pom.xml (donc cette information va probablement au référentiel source et peut être accessible à toute personne ayant accès à la source), le nom d'utilisateur et le mot de passe ne devraient pas être exposés normalement. Donc, ils sont mieux spécifiés dans settings.xml. Ceci est particulièrement important dans votre cas, lorsque vous travaillez avec une base de données de production. Une bonne explication peut être trouvée here

Questions connexes