I'm looking for a way to look up hostname and set it as a property in Maven.
This does not work in all environments:
...
<properties>
<hostname>${env.HOSTNAME}</hostname>
</properties>
...
Any suggestions?
I'm looking for a way to look up hostname and set it as a property in Maven.
This does not work in all environments:
...
<properties>
<hostname>${env.HOSTNAME}</hostname>
</properties>
...
Any suggestions?
Use a groovy script to set the project property
<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>
${env.COMPUTERNAME} works for me..
I ended up with a simple solution to the cross-plattform problem:
<manifestEntries>
<Build-Host-Linux>${env.HOSTNAME}</Build-Host-Linux>
<Build-Host-Windows>${env.COMPUTERNAME}</Build-Host-Windows>
</manifestEntries>
The comment posted by user1885834 was working best for me: Create profiles for Windows and Linux and use the respective environment variables to define a new property ${hostname}, to be used anywhere.
<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>