Donnerstag, Februar 27, 2020

Ändern Sie die Eigenschaften im pom.xml zur Laufzeit mit Maven von Ant-Tasks. Ist es Möglich?

Ich habe folgenden Anwendungsfall:
Meine Anwendung gestartet wird, mit einem Ant-Script, das den Anwender auffordert, mehrere Fragen über die Projekt-Konfiguration (Datenbank-Einstellungen, usw.). Diese Einstellungen werden gespeichert in einer properties-Datei.

Dann möchte ich ausführen von Maven in mein Ant-Skript von Maven-Ant-Tasks, die ersetzen sollen, die vordefinierten Eigenschaften in meinem pom.xml mit den Eigenschaften der Eigenschaften-Datei.
Ich will nicht zu ändern, die pom.xml.

Gibt es eine Möglichkeit, dies zu tun?
Vielen Dank im Voraus!

(BTW ich habe bereits versucht, einen ähnlichen Ansatz mit maven nur, das scheint unmöglich zu sein im moment)

InformationsquelleAutor Ingo Fischer | 2010-05-17

2 Kommentare

  1. 7

    Können Sie definieren die Eigenschaften auf der maven-Befehl Linie mit -D und diese überschreiben die Eigenschaften in Ihr Projekt-Datei.

    Beispielsweise in pom.xml

      <properties>
         <myProp>A</myProp>
      </properties>

    In Ihrer ant-build.xml Sie können dann rufen Sie das mvn-Kommando-Zeile wie

    mvn -DmyProp=B install

    Wird myProp B in das Projekt. Die mvn ant-task Seite erläutert die Verwendung eines Makros zum aufrufen von maven-Kommandozeile. Diese können leicht angepasst werden, um auch die zusätzlichen Eigenschaften.

    Dazu in maven allein, verwenden Sie die exec plugin zu starten, maven, übergeben Sie den Befehl Parameter in der gleichen Weise wie mit der ant:java-Aufgabe.

  2. 1

    Haben Sie versucht zu ersetzen, um die Eigenschaften on the fly durch <copy> ant-task ?

    Davon aus, dass Ihre Eigenschaften sind in der Datei settings.properties. Die Definition der Eigenschaften zu ersetzen, die in Ihrem pom.xml mit @ um Sie herum, können Sie die Kopie der pom-Datei und ersetzen einige Eigenschaften zur gleichen Zeit. E. g.:

    <copy file='pom.xml' toFile='real-pom.xml'>
      <filterset filtersfile='settings.properties' />
    </copy>

    Dann rufen Sie maven:

    mvn -f real-pom.xml

Kostenlose Online-Tests