繁体   English   中英

Java版本控制系统与蚂蚁

[英]java version control system with ant

我有一个构建我的发行版的ANT-Skript。 它必须使用版本号,因此必须在ANT脚本中键入。

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

有什么办法可以只在一个地方存储版本号吗?

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

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

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

在ant脚本中,定义任务( <taskdef> ),执行该任务,然后在属性${VERSIONNUMBER}找到版本号。

也许您正在寻找ANT BuildNumber任务? 它维护带有版本号的单个文件。 从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>任务调用此方法,将输出保存在属性中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM