Frage

Ich habe ein Maven -Plugin geschrieben, um die Maschinen -IP -Adresse zu greifen, und möchte eine Eigenschaft erstellen können, damit die IP -Adresse bei der Erzeugung der Archetyp in eine Datei (über $ {iPaddress}) gefiltert wird.

Ich konnte nicht herausfinden, wie das geht. Weiß jemand?

War es hilfreich?

Lösung

Das Eigenschaften-Maven-Plugin liest Eigenschaften aus einer Datei und stellt sie einem Build zur Verfügung, als ob sie inline definiert worden wären.

Sie können entweder Ihr Plugin die IP in eine Datei ausgeben und dann das Properties -Plugin zum Lesen verwenden, oder drücken Sie das ein Quelle Aus dem Properties -Plugin, um die Eigenschaft in Ihrem eigenen Plugin einzustellen.

Im Wesentlichen erhalten Sie nur die Eigenschaften aus dem Mavenproject und fügen Ihren eigenen Eintrag/Ihre IES hinzu.

Andere Tipps

Sie können org.codehaus.groovy.maven plugin verwenden, um IP zu erhalten und auf Requisiten einzustellen. In meinem Beispiel habe ich abgerufene IP in Property Localip gesetzt und es ist in den nächsten Phasen als andere Maven -Props erhältlich, dh als $ {localip}.

                 <plugin>
                    <groupId>org.codehaus.groovy.maven</groupId>
                    <artifactId>gmaven-plugin</artifactId>
                    <version>1.0</version>
                    <executions>
                      <execution>
                        <id>get-local-ip</id>
                        <phase>initialize</phase>
                        <goals>
                          <goal>execute</goal>
                        </goals>
                        <configuration>
                          <classpath>
                            <element>
                              <groupId>commons-lang</groupId>
                              <artifactId>commons-lang</artifactId>
                              <version>2.4</version>
                             </element>
                          </classpath>
                          <source>
                              java.net.InetAddress address=InetAddress.getByName("${env.COMPUTERNAME}");
                              project.properties.localIP=address.getHostAddress();
                          </source>
                        </configuration>
                      </execution>
                    </executions>
                </plugin>

Nun, das Problem ist - Ihre Eigenschaften werden verarbeitet Vor Sie laufen den Build und können nicht überschrieben werden während der Build. Zumindest ist das meine Erfahrung, ich würde gerne als falsch erwiesen werden und sogar negative Punkte dafür akzeptieren :) Also eine Möglichkeit - erstellen mvn build Gleich danach (ich weiß, dass es hässlich ist)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top