编程语言
首页 > 编程语言> > java – 在eclipse编译期间在构建中嵌入git-describe,日期和时间

java – 在eclipse编译期间在构建中嵌入git-describe,日期和时间

作者:互联网

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

#!/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之前从光盘加载它?是否还有其他优雅的解决方案可以将数据导入构建中?

谢谢!

解决方法:

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

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

标签:java,git,android,eclipse,auto-generate
来源: https://codeday.me/bug/20190626/1291634.html