我正在寻找一种方法来查找主机名并将其设置为Maven中的属性。
这不适用于所有环境:
...
<properties>
<hostname>${env.HOSTNAME}</hostname>
</properties>
...
有什么建议吗?
答案 0 :(得分:30)
使用groovy脚本设置项目属性
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<phase>generate-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
project.properties["hostname"] = InetAddress.getLocalHost().getHostName()
</source>
</configuration>
</execution>
</executions>
</plugin>
答案 1 :(得分:4)
$ {env.COMPUTERNAME}适合我......
答案 2 :(得分:2)
我最终得到了一个解决跨平台问题的简单方法:
<manifestEntries>
<Build-Host-Linux>${env.HOSTNAME}</Build-Host-Linux>
<Build-Host-Windows>${env.COMPUTERNAME}</Build-Host-Windows>
</manifestEntries>
答案 3 :(得分:2)
Maven Build Helper插件3.1.0刚刚发布,目标是获取主机名,IP地址,端口保留等(http://www.mojohaus.org/build-helper-maven-plugin/usage.html)。
将其添加到构建插件中
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>init-build-properties</id>
<goals>
<goal>hostname</goal>
</goals>
<configuration>
<hostnameProperty>my.hostname</hostnameProperty>
</configuration>
</execution>
</executions>
</plugin>
答案 4 :(得分:0)
user1885834发布的评论最适合我:为Windows和Linux创建配置文件,并使用相应的环境变量来定义要在任何地方使用的新属性$ {hostname}。
<profile>
<id>unix</id>
<activation>
<os>
<family>unix</family>
</os>
</activation>
<properties>
<hostname>${env.HOSTNAME}</hostname>
</properties>
</profile>
<profile>
<id>windows</id>
<activation>
<os>
<family>Windows</family>
</os>
</activation>
<properties>
<hostname>${env.COMPUTERNAME}</hostname>
</properties>
</profile>