ant脚本打jar包 自动获取时间以及项目svn版本号
1.关键代码,获取时间
<tstamp>
<format property="touch.time" pattern="yyyy/MM/dd hh:mm" />
</tstamp>
2.获取本地svn版本
<target name="version" depends="init" >
<typedef resource="com/googlecode/svntask/svntask.xml">
<classpath>
<fileset dir="${lib}">
<include name="svnkit.jar"/>
<include name="svntask.jar"/>
</fileset>
</classpath>
</typedef>
<svn>
<info path="E:\worksapce2\ACService2" revisionProperty="revisionVersion" />
</svn>
<property name="version" value="${revisionVersion}" />
<echo message="version: ${version}" />
</target>
3. 项目示例
<project name="build_pub" default="jar" basedir="."> <property name="class.dir" value="WEB-INF/classes"/>
<property name="src.dir" value="src" />
<property name="build.dir" value="targetJar" />
<property name="jar.name" value="ac-api.jar" />
<property name="lib" value="WEB-INF/lib" /> <path id="classpath">
<fileset dir="${lib}" includes="**/*.jar"/>
</path> <target name="init">
<echo message="+--- init start ---+" />
<tstamp />
<delete file="${build.dir}/${jar.name}" />
<echo message="+--- init end ---+" />
</target>
<target name="version" depends="init" >
<typedef resource="com/googlecode/svntask/svntask.xml">
<classpath>
<fileset dir="${lib}">
<include name="svnkit.jar"/>
<include name="svntask.jar"/>
</fileset>
</classpath>
</typedef>
<svn>
<info path="E:\worksapce2\ACService2" revisionProperty="revisionVersion" />
</svn>
<property name="version" value="${revisionVersion}" />
<echo message="version: ${version}" />
</target>
<target name="jar" depends="version" >
<echo message="+--- jar *.class files start ---+" />
<tstamp>
<format property="touch.time" pattern="yyyy/MM/dd hh:mm" />
</tstamp>
<pathconvert property="mf.classpath" pathsep="lib/"> <path refid="classpath" /> <flattenmapper /> </pathconvert>
<jar destfile="${build.dir}/${jar.name}" update="true">
<fileset dir="${class.dir}" includes="com/inspur/api/ac/**,com/inspur/api/common/**">
</fileset>
<manifest>
<attribute name="user-name" value="liyx"/>
<attribute name="svn-version" value="${version}"/>
<attribute name="package-time" value="${touch.time}"/>
</manifest>
</jar>
<echo message="+--- jar *.class files end ---+" />
</target>
</project>
4.注意事项
注意target直接的依赖关系,另外获取本地svn号需要依赖本地jar包,分别是svntask.jar和svnkit.jar,我分享的下载地址分别为:
http://mobile.qzone.qq.com/l?g=1357&sharekey=7ab0de0e131e16e9d859dff5bc1c5ea9
http://mobile.qzone.qq.com/l?g=1357&sharekey=cdbeb37e11b4395fd3dad86edc02e197
ant脚本打jar包 自动获取时间以及项目svn版本号的更多相关文章
- 把封装脚本做成jar包
前提: eclipse, selenium, maven 把二次封装过的脚本做成jar包, 这样可以在新建工程里也调用封装过的方法. 实现步骤: 1. project 右键 => maven = ...
- Ubuntu 16.04使用“从互联网自动获取”时间无法写入硬件BIOS的奇怪问题
目前发现的就是这个问题,只能手动同步到BIOS. 如果是手动设置过时间,那么可以正常同步到BIOS. 而如果切换到从互联网自动获取时间时,是不能同步到BIOS的,但是界面上的时间确实最新的. 并且这个 ...
- [JAR包] android引入JAR包,打包成JAR包,打包成Library项目,导入Library项目
(1)项目导入JAR包:1.在项目目录里建立一个libs目录,将外部jar包拷贝在里面.2.右键点击项目,Bulid Path->Configure Build Path3.在设置Libraie ...
- 【jar】JDK将单个的java文件打包为jar包,并引用到项目中使用【MD5加密】
==================================================================================================== ...
- 关于IDEA的Maven打jar包springboot项目问题,打成可执行jar包,IDEA创建的maven项目和spring initializr项目
Spring Initializr创建的项目 源文件地址 https://github.com/TaoPanfeng/maven-package 项目的创建步骤 进行打包 clear package ...
- 使用github作为maven仓库存放发布自己的jar包依赖 实现多个项目公共部分代码的集中,避免团队中多个项目之间代码的复制粘贴
使用github作为maven仓库存放发布自己的jar包依赖 实现多个项目公共部分代码的集中,避免团队中多个项目之间代码的复制粘贴. 1.首先在本地maven位置的配置文件setting.xml(没有 ...
- 利用Ant脚本生成war包的详细步骤
使用ant脚本前的准备 1.下载一个ant安装包.如:apache-ant-1.8.4-bin.zip.解压到E盘. 2.配置环境变量.新增ANT_HOME:E:\apache-ant-1.8.4:P ...
- Mysql设置字段自动获取时间
问题:现在在用户表中有一个字段表示用户创建的时间 第一个想法是写一段程序获得系统当前时间,想想就太麻烦了,果断放弃,之后想到了存储过程和函数,再想想还要编写存储过程或者函数的代码,有点放弃的想法,但是 ...
- spring boot 打jar包,获取resource路径下的文件
前言:最近在spring boot项目静态类中获取resource路径下文件,在idea中启动都可以获取,但是打包后变成了jar包 就无法获取到. 我想到了两种方法,一种是根据http访问静态资源比如 ...
随机推荐
- linux 命令——文件管理 ls
一.介绍 ls命令是linux下最常用的命令之一,ls跟dos下的dir命令是一样的都是用来列出目录下的文件和子目录.ls全称list,即列表. 缺省下ls用来打印出当前目录的清单,如果ls指定其他目 ...
- 翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(2)
安装和配置集群(Installing and Configuring your Cluster) 第一步是确保正确安装了 Java SE环境.ElasticSearch需要版本6或更高的版本,可以从下 ...
- zoj3822-Domination (概率dp)
题意: 给你n*m的棋盘,每天选择的一个空的方格放一个棋子,求使棋盘的每行每列都至少有一个棋子的天数期望. 分析: 先想状态,要使每行每列都至少一个,考虑前i行j列,能放得就是i行j列里面的或第i+1 ...
- FOJ2022车站 线段树区间合并
http://acm.fzu.edu.cn/problem.php?pid=2022 刚开始MLE,用map对应,果断爆内存了,然后改用去重,离散化, lowbound查找元素位置,速度还不错,不过p ...
- 在word中显示漂亮的代码
在word中粘贴或写代码时,通常得不到想要的格式,可用‘Notepad++’工具实现. 步骤: (1)安装Notepad++软件,把代码粘贴进去,选择菜单栏中的语言,然后选择相应代码语言,如P-> ...
- ubuntu 下 数学库编译链接时找不到各种数学问题解决方法 can not fon atan 等等
解决参考 http://askubuntu.com/questions/190246/ld-cannot-find-math-library you should use -lm at the end ...
- bzoj 3439 Kpm的MC密码(Trie+dfs序+主席树)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=3439 [题意] 给定若干串,问一个串的作为其后缀的给定串集合中的第k小. [思路] 如 ...
- 通过实例让你真正明白mapreduce---填空式、分布(分割)编程
本文链接:http://www.aboutyun.com/thread-8303-1-1.html 问题导读: 1.如何在讲mapreduce函数中的字符串等信息,输出到eclipse控制台?2.除了 ...
- warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
最近在编译库文件后,使用它做APP,遇到如下问题: 1>LIBCMT.lib(invarg.obj) : error LNK2005: __pInvalidArgHandler 已经在 LIBC ...
- erlang局域网内节点通信——艰难四步曲 (转)
http://blog.chinaunix.net/uid-22566367-id-382011.html 在Programming Erlang这本书中,在写到第十章中,主要实现的是不同节点之间的通 ...