[英]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.