我在我的Ant构建脚本中集成了一些过滤链,在打包时将构建日期,程序版本和git head sha添加到源文件中,但是我不确定如何确定源代码是否存在如果在当前要构建的源中的HEAD提交后没有任何更改,那么" clean",as-in。
要标记HEAD提交,请使用此问题中生成的git.revision
目标:How to lookup the latest git commit hash from an ant build script
我想做类似的事情,但要表明回购状态,即。 "来源:@STATUS @"将过滤到:"来源:清洁" /"来源:DIRTY"或类似。
在ant git status
中运行exec
命令会返回很多内容并使其更难处理。有更简单的方法吗?
答案 0 :(得分:1)
解决此问题的首选方法是永远不要更改我的一个源文件(在版本控制下)。相反,ANT创建了一个“build”或“target”目录,该目录被添加到“.gitignore”文件中,以便git不关心其内容。
├── build.xml
├── .gitignore
├── src
│ ├── main
│ │ ├── java
│ │ └── resources
│ └── test
│ └── java
└── build
├── classes
├── jars
└── resources
这种方法的优点是:
我的标准“干净”目标的一个例子
<target name="clean">
<deleted dir="build"/>
</target>
为了确保干净的构建,请运行以下
ant clean build
最后,如果您正在使用像Jenkins这样的CI服务器(我强烈建议您这样做),通常会有插件支持,例如:
提供删除整个项目工作区或所选文件的功能。
希望这有帮助。