在幾個開源的java項目中,我看到了在字符串變量中使用@符號,這是幹什麼用的?在字符串中使用@符號
public static final String APP_VERSION = "@[email protected]";
在幾個開源的java項目中,我看到了在字符串變量中使用@符號,這是幹什麼用的?在字符串中使用@符號
public static final String APP_VERSION = "@[email protected]";
它是用於構建腳本作爲標記與構建時替換這些字符串:
例如,我曾在具有儲存在一個String實例的版本號,如應用程序看到它信息,如真實版本。真正的信息通常來自財產文件或時間戳。
啊,所以在構建腳本中,您將如何定義要替換的內容?我正在使用一個xml文件來編譯項目。 – SamTebbs33
這與工具不同。在Ant中參見http://ant.apache.org/manual/Tasks/replace.html,對於Maven,請參閱https://code.google.com/p/maven-replacer-plugin/ –
將@
放在一個字符串中並沒有做任何特別的事情(就Java而言)。這個例子看起來很奇特。在編譯之前,構建腳本可能會將該值替換爲實際版本號。字符串也可能完全是做其他事情。
@ VERSION @'將被看作是一個變量而不是一個名爲「VERSION」的字符串。在構建過程中,「@ VERSION @」將被替換爲版本號。如果字符串只是「VERSION」,那麼它不會被替換。它似乎是「只是另一個字符串」。 – lurker
另一種常見模式是'$ Id $'等,在_commit_時間由SVN使用,而不是構建時間。 – Alnitak