Java注释可以这样做吗?

时间:2009-05-19 20:25:50

标签: java gwt annotations

我正在寻找一个解决方案,在我的应用程序中显示subversion版本号和最后修改日期(用GWT编写,因此反射不可用)。在subversion关键字中编码修订版不起作用,因为它仅适用于当前文件。使用注释是否有更好的解决方案? (例如,在编译期间执行的单独类,在整个项目中获取最新版本#并将修订和最后修改日期注入源代码)

3 个答案:

答案 0 :(得分:2)

我知道

@SvnRevision("$Id$")
public class Foo {
}

然后你的课程都会用他们的版本注释。您需要确保注释被定义为具有运行时保留,以便可以在运行时查询。

修改

好的,既然SVN没有这个功能,我会编写一个Maven插件来模拟它。 Maven可以访问每个文件的SCM信息,因此在构建阶段您可以使用相同的关键字扩展。

答案 1 :(得分:2)

注释并非真正为此而设计。最简单的方法是将其作为构建的一部分。

使用Ant,您可以生成包含版本信息的文件,将其包含在应用程序的JAR中,将其作为资源加载到服务器上,然后通过RPC将其提供给浏览器端代码。 Ant还可以在文件复制时对文件进行字符串替换,您可以使用它在应用程序的HTML文件中包含版本号(然后不需要RPC)。

不知道Maven,但如果不能做同样的事情,我会非常惊讶。

答案 2 :(得分:0)

Subversion仍然具有$ Id $功能,但需要使用文件上的svn:keywords属性显式启用它(将其设置为“Id”)。

另请参阅:http://svnbook.red-bean.com/en/1.5/svn.advanced.props.special.keywords.html

所以上面使用@SvnRevision的Jherico的想法会起作用。