2012-03-06 50 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