wake-up-neo.com

Überschreiben der Moduleigenschaften vom übergeordneten POM in Maven

Ist es möglich, Moduleigenschaften vom übergeordneten POM zu überschreiben, ohne den Modul-POM zu ändern?

Zum Beispiel:

modul pom (ich kann es überhaupt nicht ändern):

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

elternteil Pom:

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

effektives modul pom:

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

Wenn ja, wie soll das erreicht werden?

20
zacheusz

Die einzige Möglichkeit, die ich mit Sicherheit kenne, ist das Definieren der Eigenschaft in der Befehlszeile, z. mvn -DsomeProperty=strongValue <mvn goals/phases here>.

Sie können mit Profilen experimentieren, die im übergeordneten Element definiert sind. Ich vermute, das hilft nicht.

9
user944849

Nein, kannst du nicht. Die Idee ist, dass, wenn es nicht möglich sein sollte, einen Wert zu überschreiben, keine Eigenschaft verwendet wird. Wenn Sie keine andere Option haben, können Sie sie mit http://maven.Apache.org/enforcer/enforcer-rules/requireProperty.html erzwingen, wodurch der Build abgebrochen wird, wenn eine Eigenschaft einen anderen Wert als hat erwartet.

8
Robert Scholte

Ein untergeordnetes POM kann den Wert einer in einem übergeordneten Pom definierten Eigenschaft überschreiben. Es funktioniert also, indem Sie einfach einen Abschnitt in das untergeordnete POM einfügen und die gewünschten Werte festlegen.

0
kanaparthikiran