2013-10-06 45 views
2

在几个开源的java项目中,我看到了在字符串变量中使用@符号,这是干什么用的?在字符串中使用@符号

public static final String APP_VERSION = "@[email protected]"; 
+1

@ VERSION @'将被看作是一个变量而不是一个名为“VERSION”的字符串。在构建过程中,“@ VERSION @”将被替换为版本号。如果字符串只是“VERSION”,那么它不会被替换。它似乎是“只是另一个字符串”。 – lurker

+2

另一种常见模式是'$ Id $'等,在_commit_时间由SVN使用,而不是构建时间。 – Alnitak

回答

6

它是用于构建脚本作为标记与构建时替换这些字符串:

例如,我曾在具有储存在一个String实例的版本号,如应用程序看到它信息,如真实版本。真正的信息通常来自财产文件或时间戳。

+0

啊,所以在构建脚本中,您将如何定义要替换的内容?我正在使用一个xml文件来编译项目。 – SamTebbs33

+0

这与工具不同。在Ant中参见http://ant.apache.org/manual/Tasks/replace.html,对于Maven,请参阅https://code.google.com/p/maven-replacer-plugin/ –

4

@放在一个字符串中并没有做任何特别的事情(就Java而言)。这个例子看起来很奇特。在编译之前,构建脚本可能会将该值替换为实际版本号。字符串也可能完全是做其他事情。