ant应用举例—执行源码补丁任务
发布的软件难免会有 bug。修改好 bug 后,没有提交到 svn 中,可以生成一个补丁文件,就可以发布这个补丁文件了。我们 down 到补丁文件后,就可fix bug了。比较开源软件的 patch。现我用 hello world 程序来示例下 ant 怎么让程序打上补丁。
假如已经发布了一个软件程序,HelloWorld.java:
- package com.chenlb;
- public class HelloWorld {
- public static void main(String[] args) {
- String name = "Hello World!";
- if(args.length > 0) {
- name = args[0];
- }
- System.out.println(name);
- }
- }
用户几天后报告 bug(输入参数时没有了 hello world!),恩,马上 fix。fix后先不提交到svn,可以用 svn 客户端生成一个 patch文件,比如:对项目右击 TortoiseSVN/Create patch 选择 HelloWorld.java,再选择保存位置(如 arg_name.patch),patch 文件如下:
- Index: src/com/linuxany/HelloWorld.java
- ===================================================================
- --- src/com/linuxany/HelloWorld.java (revision 10605)
- +++ src/com/linuxany/HelloWorld.java (working copy)
- @@ -5,7 +5,7 @@
- public static void main(String[] args) {
- String name = "Hello World!";
- if(args.length > 0) {
- - name = args[0];
- + name += args[0];
- }
- System.out.println(name);
- }
然后用户可以下载 arg_name.patch文件,放到软件目录的patches子目录下。然后在软件目录中运行
ant -Dpatch.name=arg_name.patch apply-patch
build.xml 任务脚本如下:
- <property name="patch.file" value="patches/${patch.name}"/>
- <target name="apply-patch" description="Apply a patch file. Set -Dpatch.file, or -Dpatch.name when the patch is in the directory ./patches/">
- <patch patchfile="${patch.file}" strip="0"/>
- </target>
没有评论▼