使用ant将SVN版本信息打包进jar包

2 篇文章 0 订阅
1 篇文章 0 订阅

近几天在做一个小项目,需要使用ant编译并能够将SVN版本信息打包进所编译出的jar包,为此查了很多资料,总结如下:

1.运行环境需要安装ant并配置好环境变量(此点很重要,Eclipse自带的ant某些功能会受限报错)

2.安装xmltask(http://www.oopsconsultancy.com/software/xmltask/),方法如下:

方案一:Eclipse中  Window > Preferences > Ant > Runtime > Classpath, select “Global Entries” ,Add external Jar
方案二:将依赖jar包放入classpath文件夹(与src同级)

3.编写build.xml

①根节点下添加taskdef节点

    <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>;

②根节点下添加property 目录节点

    <!-- 根目录 -->
    <property name="base.dir" location="${basedir}" />
    <!-- 源码目录 -->
    <property name="src.dir" location="${basedir}/src" />

③根节点下添加target 节点

    <target name="version">        
        <exec dir="${src.dir}" executable="svn">            
            <arg line="up" />        
        </exec>        
        <exec dir="${src.dir}" executable="svn" output="svninfo.xml">            
            <arg line="info --xml ${src.dir}" />        
        </exec>        
        <xmltask source="svninfo.xml">            
            <copy path="/info/entry/@revision" property="svn.head.rev" />        
        </xmltask>    
    </target>  

需要注意的是在编译的target节点需要加上以来该节点,如

<target name="build" depends="init, version, complier, copy-resource, pack-jar, clean">

④将生成在程序根目录的svninfo.xml拷贝到生成的cliass根目录中

    <target name="complier">
        <javac srcdir="${src.dir}" destdir="${classes.dir}" includeantruntime="on" classpath="${lib.dir}" target="${complier.version}" encoding="UTF-8">
            <classpath refid="lib.classpath" />
        </javac>
        <!-- 2.把svn信息的XML打包进去 -->
        <copy file="${base.dir}/svninfo.xml" todir="${build.dir}/classes" overwrite="true"/> 
    </target>

⑤在代码中读取该XML中的信息即可获取输出SVN版本信息

 

参考:

https://blog.csdn.net/edychang/article/details/12781671

https://blog.csdn.net/yonghutwo/article/details/45799739

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值