在eclipse编译期间在构建中嵌入git-describe,date和time

时间:2012-03-06 08:13:13

标签: java android eclipse git auto-generate

我在eclipse中使用外部构建器功能调用一个bash脚本,它将为我的项目自动生成BuildInfo.java类(我在这里看了一下stackoverflow,以便将git-describe和date嵌入到eclipse中(非-ant!)build,但找不到任何),我的脚本看起来像这样:

#!/bin/bash

VERSION=$(git describe --tag)
DATE=$(date "+%Y-%m-%d")
TIME=$(date "+%H:%M")

echo "Version $VERSION, built on $DATE $TIME"

cat > src/com/bla/bla/BuildInfo.java <<DELIM
package com.bla.bla;

// Auto-generated, triggered by project build
public class BuildInfo {
    public static String version = new String("$VERSION");
    public static String date = new String("$DATE");
    public static String time = new String("$TIME");
}
DELIM

我将外部构建器配置为在java / android构建器之前执行每个构建(甚至是自动构建)。当我完全清理项目时,这个方案确实工作正常,但是当我更新另一个文件时,即使Eclipse确实执行了我的外部构建器,并且确实正在重新生成BuildInfo类,Eclipse仍然使用该类的旧缓存版本来获得最终结果,所以我看到旧的信息,有时可能比没有构建信息更糟糕。

你知道我怎么能告诉Eclipse这个文件是生成的,它根本不应该缓存它,但是在我的外部构建器完成之后和java builder之前从光盘加载它?是否还有其他优雅的解决方案可以将数据导入构建中?

谢谢!

1 个答案:

答案 0 :(得分:4)

在Eclipse中,您可以指定在自定义构建工具运行后更改的资源。

转到您的内置工具选择编辑切换到刷新 -Tab。 选择完成后刷新资源特定资源... 并添加自动生成的 BuildInfo.java