web-dev-qa-db-fra.com

Remplacement des propriétés de module du POM parent dans Maven

Est-il possible de remplacer les propriétés de module de pom parent sans changer le pom de module?

Par exemple:

module pom (je ne peux pas le changer du tout):

<properties>
    <someProperty>some value to be replaced</properties>
</properties>

pom parent:

<properties>
    <someProperty>strongValue</someProperty> <!-- some magic here -->
</properties>

module efficace pom:

<properties>
    <someProperty>strongValue</someProperty>
</properties>

Si oui, alors comment y parvenir?

20
zacheusz

La seule façon pour moi de le faire est de définir la propriété sur la ligne de commande, par exemple. mvn -DsomeProperty=strongValue <mvn goals/phases here>.

Vous pouvez expérimenter avec les profils définis dans le parent; Je pense que ça ne va pas aider.

9
user944849

Non, tu ne peux pas. L'idée est que s'il ne devrait pas être possible de remplacer une valeur, n'utilisez pas une propriété. Si vous n'avez pas d'autre option, vous pourriez vouloir le forcer avec http://maven.Apache.org/enforcer/enforcer-rules/requireProperty.html qui cassera la construction si une propriété a une valeur différente de attendu.

8
Robert Scholte

Un POM enfant peut remplacer la valeur d'une propriété définie dans un pom parent. Donc, cela fonctionne simplement en mettant une section dans le POM enfant et en définissant les valeurs sur les valeurs souhaitées. 

0
kanaparthikiran