Szukam sposobu na wyszukanie nazwy hosta i ustawienie jej jako własności w Maven.Wyszukaj nazwę hosta z Maven
To nie działa we wszystkich środowiskach:
...
<properties>
<hostname>${env.HOSTNAME}</hostname>
</properties>
...
sugestie?
Szukam sposobu na wyszukanie nazwy hosta i ustawienie jej jako własności w Maven.Wyszukaj nazwę hosta z Maven
To nie działa we wszystkich środowiskach:
...
<properties>
<hostname>${env.HOSTNAME}</hostname>
</properties>
...
sugestie?
Użyj groovy skrypt ustawić właściwość projektu
<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>
Świetne rozwiązanie! Dzięki :) – steinim
Trudno uwierzyć, że Maven nie może ujawnić tych informacji w jakikolwiek inny sposób. Ale fajny hack. Czy znasz inne właściwości, które zazwyczaj są ustawione w ten sposób? – cwash
@cwash Hack? Zgoda. Jest to wymagane w przypadku informacji niedostępnych dla Maven jako własności systemu lub środowiska. Zobacz: http://books.sonatype.com/mvnref-book/reference/resource-filtering-sect-properties.html –
skończyło się za pomocą prostego rozwiązania problemu cross-PLATTFORM:
<manifestEntries>
<Build-Host-Linux>${env.HOSTNAME}</Build-Host-Linux>
<Build-Host-Windows>${env.COMPUTERNAME}</Build-Host-Windows>
</manifestEntries>
Brzmi nieźle. Ale HOSTNAME nie jest dla mnie zdefiniowany na RHEL7. – Christian
To dziwne. RHEL6 jest w porządku z tym. Czy jesteś pewien, że masz env.HOSTNAME, a nie tylko HOSTNAME? – AxelW
komentarz wysłane przez user1885834 działa najlepiej dla mnie: Tworzenie profili dla systemu Windows i Linux i użyć odpowiednich zmiennych środowiskowych, aby zdefiniować nową właściwość $ {hostname}, aby być u sed wszędzie.
<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>
tylko, że HOSTNAME nie jest zdefiniowany na RedHat :( – Christian
Potrzebujesz tego w prawdziwej kompilacji lub tylko w środowisku CI? – khmarbaise
Chcę odfiltrować pliki właściwości testowych, zastępując $ {hostname} nazwą hosta, w którym jest uruchomiona. Jest to przydatne w przypadku lokalnych kompilacji i środowisk CI. W przypadku "prawdziwych" kompilacji nazwa hosta w pliku właściwości jest zakodowana na sztywno. Ma to na celu sprawdzenie, czy plik właściwości jest odpowiedni dla właściwego środowiska. – steinim
Dlaczego nie tworzyć artefaktów dla każdego środowiska, którego potrzebujesz, zamiast tworzyć środowisko kompilacji? A co z tego: http://blog.soebes.de/index.php?/archives/340-Maven-Configuration-For-Multipe-Environments.html – khmarbaise