我在java应用程序中有一个包含IP地址参数的conf文件。我希望能够在构建时自动将此参数放入本地IP地址。我使用maven resources-plugin如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>/home/user/config</outputDirectory>
<resources>
<resource>
<directory>config</directory>
<filtering>true</filtering>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
接下来,我创建了一个包含参数
的属性<properties>
<gateway.ip>${local.ip}</gateway.ip>
</properties>
然后,我创建了一个获取本地IP地址并设置上述参数的Maven插件:
final Properties props = mavenProject.getProperties();
props.put("local.ip", resultAddress.getHostAddress());
最后,我在pom.xml中定义了我的自定义插件:
<plugin>
<groupId>com.company</groupId>
<artifactId>get-local-ip-plugin</artifactId>
<version>0.0.1-SNAPSHOT</version>
<executions>
<execution>
<id>get-local-ip</id>
<phase>validate</phase>
<goals>
<goal>get-local-ip</goal>
</goals>
<configuration>
<localIp>${local.ip}</localIp>
</configuration>
</execution>
</executions>
</plugin>
问题是这不起作用,我在生成的文件中得到$ {local.ip}而不是xxx.xxx.xxx.xxx的ip地址。
有什么建议吗?
答案 0 :(得分:0)
在评论中回答:
发现我的错误:) - 我将两个插件绑定到验证阶段(好的 旧复制粘贴) - rperez 2011年6月22日