プラグインを使用してMavenプロジェクトに計算プロパティを追加するにはどうすればよいですか?
-
05-07-2019 - |
質問
マシンのIPアドレスを取得するMavenプラグインを作成し、アーキタイプの生成が発生したときにIPアドレスが($ {ipaddress}を介して)ファイルにフィルターされるようにプロパティを作成できるようにしたいと思います。
これを行う方法を見つけることができませんでした。誰でも知っていますか?
解決
properties-maven-plugin はファイルからプロパティを読み取り、作成しますインラインで定義されているかのようにビルドで使用できます。
プラグインでIPをファイルに出力してからプロパティプラグインを使用して読み取るか、ソースを使用して、独自のプラグインにプロパティを設定します。
本質的には、MavenProjectからプロパティを取得し、独自のエントリを追加するだけです。
他のヒント
org.codehaus.groovy.mavenプラグインを使用してIPを取得し、propsに設定できます。私の例では、取得したIPをプロパティlocalIPに設定しており、次のステージで他のMavenプロップとして、つまり$ {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>
問題は-ビルドを実行する前にプロパティが処理される ため、ビルドの実行中に上書きできないことです。少なくともそれは私の経験ですが、間違っていることが証明され、そのための否定的なポイントさえ受け入れたいと思っています:)
そのため、1つの可能性-プログラムを実行し、システムプロパティを設定し、その直後に mvn build
を実行するスクリプトを作成します(Iいことはわかっています)
所属していません StackOverflow