在日常的项目开发中,我们可以经常性的需要打包测试,尤其是开发环境是windows,而实际环境则是linux。
这样的话,很多程序员要一会打一个包,一会打一个包,这些包可能会很大,实际上只有代码部分会变动,而jar包基本则不动。
当然很多人可能会说,自动化测试。很好的,我们今天要做的就是自动化测试的第一步。
这个时候我是可以使用ant来打包,去掉项目中的所有的jar文件。然后在项目的tomcat启动时到特定的地点去加载jar文件。

这样做,war包可能会只有几M,什么更小。具体如何动态的加载jar文件,我们在下一章讲解,这一章,我们先来看ant打包的build.xml配置。

看源代码:

<?xml version="1.0" encoding="UTF-8" ?>
<project name="nojar" default="deleteClasses" basedir="."><property name="classes" value="build/classes" /><property name="build" value="build" /><property name="lib" value="WebRoot/WEB-INF/lib" /><path id="compile.jar"><fileset dir="${lib}"><include name="*.jar" /></fileset></path><!-- 删除build路径--><target name="deleteBuild"><delete dir="build" /><copy todir="${classes}/com/herman/config"><fileset dir="${basedir}/src/com/herman/config"><include name="*" /></fileset></copy></target><!-- 建立build/classes路径,并编译class文件到build/classes路径下--><target name="compile" depends="deleteBuild"><mkdir dir="${classes}" /><javac srcdir="src" destdir="${classes}" includeantruntime="on" encoding="utf-8"><classpath refid="compile.jar" /></javac></target><!-- 打war包--><target name="war" depends="compile"><war warfile="${build}/nojar.war" webxml="WebRoot/WEB-INF/web.xml" encoding="utf-8">   <!-- 拷贝WebRoot下除了WEB-INF和META-INF的两个文件夹--><fileset dir="WebRoot" includes="**/*.jsp"></fileset><!--<fileset dir="WebRoot" includes="**/*.*" excludes="META-INF,WEB-INF"/>--><!-- 拷贝lib目录下的jar包--><!--<lib dir="${lib}" />--><!-- 拷贝build/classes下的class文件--><classes dir="${classes}" /></war>    </target><!-- 删除build/下的classes下的字节码文件,减少war包的总大小--><target name="deleteClasses" depends="war"><!--<delete dir="${classes}"></delete>--></target>
</project>

是不是很简单,好吧,如果你认为本文还可以,请关注我的个人博客!

或者加入QQ群:135430763共同学习!

ant的高级使用,ant命令详解,ant打包,ant编译后打包去掉jar文件相关推荐

  1. Java基础 - javac命令详解(1) 编译基本java项目

    1.为什么要搞定 javac 命令 1.javac 是java中的编译源代码的命令工具,将.java文件编译成 .class 文件: 2.由于当下为了提高开发效率,大多数的开发工作都在 java的 集 ...

  2. 批处理命令 For循环命令详解!

    批处理for命令详解 FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能! 看看他的基本格式(这里我引用的是批处理中的格式,直接在命令行只需要一个%号) FOR 参数 %%变量名 IN ( ...

  3. cut\grep\awk\sed命令详解

    cut\grep\awk\sed命令详解 1.cut命令详解及实例 (1)作用:提取文件中指定的列 语法格式:cut  选项  文件名   (2)选项作用:      -d 分隔符     按照指定的 ...

  4. 终极dos批处理循环命令详解

    ---恢复内容开始--- 终极dos批处理循环命令详解 格式:FOR [参数] %%变量名 IN (相关文件或命令) DO 执行的命令作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令 ...

  5. linux find 按类型查找,Linux find查找find命令详解

    玩蛇网推荐图文教程:python 列表 Linux命令有很多,今天要介绍的是常用的基础命令中的find命令.find是Linux系统管理员所喜爱用的必备工具命令之一,它的作用是可以很轻松地找到你想要的 ...

  6. linux显示当前目录下文件,Linux显示当前目录有哪些文件命令-linux ls命令详解-嗨客网...

    Linux显示当前目录文件(ls)教程 在 Linux ls命令详解 功能 显示当前目录或指定路径下面的文件列表. 语法 ls [options] [dirname] 参数 参数 描述 options ...

  7. Ant命令详解和build.xml

    1.Ant命令详解 Ant项目文件的构建可编译,包,测试.这是Apache软件基金会jakarta一个子项目,具有跨平台性,操作简单,并且非常好上手 1.直接执行ant,当前build.xml文件下直 ...

  8. DOS批处理高级教程(三) : 批处理变量和set命令详解

    前言 这里主要是带着过一下相关的简单概念和用法, 是对于有一定的基础和编写脚本经验的同学而言, 那么一般下面的用法都是一眼看出作用和原理起到一个复习的作用.对于不熟悉的可以查询相关命令和百度即可. 第 ...

  9. Android自动化测试环境部署及adb sdkmanager avdmanager Monitor DDMS工具使用及命令详解

    环境部署及工具使用 系列文章 前言 环境部署 硬件环境 软件环境 ADB工具 adb组成 adb命令 android命令 sdkmanager 命令 avdmanager命令 管理模拟器 monito ...

  10. 把java文件打包成.jar (jar命令详解)

    把java文件打包成.jar (jar命令详解) 先打开命令提示符(win2000或在运行框里执行cmd命令,win98为DOS提示符),输入jar Chelp,然后回车(如果你盘上已经有了jdk1. ...

最新文章

  1. 做科研已经很辛苦了,为什么还要做PPT汇报?
  2. java blender_[转载]将Blender模型展示于WEB
  3. 一个实用的表格(锁定表头,可调整单元格大小,可排序)
  4. 【Python Flask】使用Ajax向后台提交数据(拼接url方式)
  5. android任务 进程 线程详解,Android任务、进程、线程详解
  6. (计算机组成原理)第七章输入和输出系统-第四节2:I/O方式之程序中断方式
  7. MongoDB数据库操作---mongoose操作
  8. .svn文件夹_SVN下载安装及使用教程(二)
  9. 一不小心,老司机又翻车了
  10. Android对话框的高级设置《一》设置对话框按钮的图像和在内容文本中插入图像
  11. Mavon-editor:获取html内容和text内容
  12. 微博java版_新浪微博JAVA通用版
  13. 阅读器背景推荐和效果图
  14. R语言使用ggplot2包使用geom_density()函数绘制分组密度图(填充色配置、半透明填充色、添加均值线)实战(density plot)
  15. jpa mysql lob_Jpa加载Lob字段报Unable to access lob stream异常
  16. 翻译:PyTorch基础知识学习 - transforms(变换)
  17. Error: docker-ce conflicts with 2:docker-1.13.1-209.git7d71120.el7.centos.x86_64
  18. unity弹幕功能实现
  19. 【程序员眼中的统计学(11)】卡方分布的应用
  20. 爬虫数据分析-----matplotlib图形展示

热门文章

  1. “乌邦托”不是乌托邦
  2. SQL-MSSQL-CODE大全
  3. 家用投影仪哪个品牌好?最便宜的投影仪是什么牌子的?
  4. instagram登录密码_如何更改您的Instagram密码
  5. webpack bulid后时,网页白屏,报错:导入的资源文件路径不对
  6. c#中delegate使用
  7. 携两位美女程序媛和多位大厂大佬,送一台 iPad!
  8. PC端和移动端唤起QQ聊天
  9. 国产凌凌漆 开头经典台词
  10. 数据结构(严蔚敏老师c语言第2版)