3

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

4

3 回答 3

2

注释并不是真的为此而设计的。作为构建的一部分,最容易做到这一点。

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

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

于 2009-05-29T22:26:36.217 回答
2

我知道

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

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

编辑

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

于 2009-05-19T20:43:01.983 回答
0

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

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

所以上面 Jherico 和@SvnRevision 的想法是可行的。

于 2009-10-26T21:03:33.590 回答