Java版本控制系统与ant



我有一个ant - script来构建我的版本。它必须使用版本号,所以它是在ANT-Script中输入的。

同时有一个包含相同版本号的Java文件,这个版本号是软件内部需要的。

有没有办法只有一个地方存储版本号?

您可以使用过滤器或替换任务将其写入资源文件(例如专用属性文件),该文件将在应用程序的类路径中可用

McDowell给出了使用Ant将版本号插入到Java文件和/或类路径资源中的"标准"答案。但是,我从来都不喜欢这种方法。

另一种选择,利用Java的"一旦编译就准备好运行"的行为,是给你的Version类一个main():

public class Version
{
   public final static int MAJOR    = 1;
   public final static int MINOR    = 0;
   public final static int PATCH    = 0;
   public final static String VERSION_STRING = MAJOR + "." + MINOR + "." + PATCH;
   public static void main(String[] argv)
   throws Exception
   {
      System.out.println(VERSION_STRING);
   }
}

然后您可以用Ant的<java>任务调用它,并将输出保存在属性中。

一个简单的解决方案:编写一个小的ant任务,从version类(我猜它有一个静态getter方法)读取版本号,并将版本号存储在ant属性中。您只需要确保版本文件位于ant的类路径上,以便任务可以访问它:

public GetVersion extends Task {
  public void execute() {
    getProject().setProperty("VERSIONNUMBER", Version.getNumber());
  }
}

在ant脚本中,定义任务(<taskdef>),执行它并在属性${VERSIONNUMBER}

中查找版本号。

也许ANT BuildNumber任务是您正在寻找的?它维护带有版本号的单个文件。从java中读取没有问题…

相关内容

  • 没有找到相关文章

最新更新