2012-07-26 48 views
0

我正在編寫一個Maven項目,我想在生成的WAR中包含一個包含一些編譯時間信息的文件。通常,這會像Maven是否有機制讀取機器名稱

  • 構建時間/日期戳東西
  • 是誰建的WAR
  • 應用程序的版本,如在POM中指定的人的用戶名

這些都很容易,因爲有maven屬性,它會給我我需要的信息。

我還想包括機器名稱。我知道Windows將此信息存儲在名爲「COMPUTERNAME」的環境變量中,而* nix使用hostname命令。

是否有一些平臺獨立的方式來獲取這些信息,以便我可以將它寫入我的文本文件?

+0

這可能適合你:http://stackoverflow.com/a/7450469/966590 – 2012-07-26 09:33:12

+0

完美 - 謝謝。 問:我如何將此標記爲答案,以便其他人可以遵循它? – Stormcloud 2012-07-26 09:53:27

+0

您可以爲自己的問題寫一個答案,並將其標記爲已接受。如果你想要我,我可以做到。 – 2012-07-26 10:18:47

回答

0

我通過調用Maven Ant任務來完成此操作。在我使用了下列Ant任務:

<tstamp>產生時間戳屬性 <propertyfile>創建包含像上面戳,用戶名等性質的屬性文件

你可以使用Ant任務<exec>執行hostname並提名一個輸出屬性以將該值寫入。

這創造了一個特性在src/main/resources目錄,我再嵌入.war文件

+0

謝謝,但我特別感興趣的機器名稱。寫入準備文件的價值是微不足道的(我已經得到它的用戶名,時間戳等) – Stormcloud 2012-07-26 09:51:25

+0

請參閱我的評論re。 hostname以上 – 2012-07-26 10:34:08

+0

我看到 - 我知道命令「hostname」在* nix上工作,但不知道它也可以在Windows上使用。 Ta – Stormcloud 2012-07-26 16:22:12