2012-03-06 52 views
4

我在eclipse中使用外部编译器功能来调用bash脚本,该脚本将自动生成我的项目的BuildInfo.java类(我在这里查看了stackoverflow (!非蚂蚁)的方式嵌入混帐描述和日期到Eclipse构建,但找不到任何),我的剧本是这样的:在eclipse中编译期间在编译期间嵌入git-describe,date和time

#!/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建设者面前它不应该缓存它在所有的,但是从光盘加载它?是否有任何其他优雅的解决方案将数据输入到构建中?

谢谢!

回答

4

在Eclipse中,您可以指定在运行定制内置工具后更改的资源。

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

+0

它看起来像它实际上工作!谢谢 – 2012-03-07 04:51:18