我有一个ANT-Skript构建我的版本。它必须使用版本号,所以它在ANT脚本中输入。java版本控制系统与蚂蚁
同时有一个Java文件包含相同的版本号,这个号码是软件内部需要的。
有什么办法只有一个地方来存储版本号?
我有一个ANT-Skript构建我的版本。它必须使用版本号,所以它在ANT脚本中输入。java版本控制系统与蚂蚁
同时有一个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任务,从版本类中读取版本号(我猜它有一个静态的getter方法)并将版本号存储在一个ant属性中。你只需要确保,该版本的文件是蚂蚁的类路径,以便该任务可以访问它:物业${VERSIONNUMBER}
public GetVersion extends Task {
public void execute() {
getProject().setProperty("VERSIONNUMBER", Version.getNumber());
}
}
Ant脚本,定义任务(<taskdef>
),执行它,并找到VERSIONNUMBER
作为构建工程师,我更愿意让构建系统确定版本和内部版本号。 – JasonMArcher 2011-04-07 23:18:05
也许ANT BuildNumber任务是你在找什么?它使用版本号维护单个文件。没问题从java读取它...
其工作方式:-) java任务的outputproperty属性做的伎俩 – 2011-04-06 14:32:17