我有一个ANT-Skript来构建我的版本。它必须使用版本号,因此它在ANT-Script中输入。
同时存在一个包含相同版本号的Java文件,软件内部需要此编号。
有没有办法只有一个地方存储版本号?
答案 0 :(得分:2)
答案 1 :(得分:1)
一个简单的解决方案:编写一个小的ant任务,从版本类中读取版本号(我猜它有一个静态的getter方法)并将版本号存储在ant属性中。您只需要确保,版本文件位于ant的类路径中,以便任务可以访问它:
public GetVersion extends Task {
public void execute() {
getProject().setProperty("VERSIONNUMBER", Version.getNumber());
}
}
在ant脚本中,定义任务(<taskdef>
),执行它并在属性${VERSIONNUMBER}
中找到版本号
答案 2 :(得分:1)
也许ANT BuildNumber任务正是您要找的?它使用版本号维护单个文件。从java中读取它没问题...
答案 3 :(得分:1)
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>
任务调用此方法,将输出保存在属性中。