专栏首页业余草ant的高级使用,ant命令详解,ant打包,ant编译后打包去掉jar文件

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

在日常的项目开发中,我们可以经常性的需要打包测试,尤其是开发环境是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>

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ant命令征集详解

    ANT的命令到此结束。他们的依赖关系,大家细细琢磨。本人目前已经不使用ANT脚本很久了。目前使用的maven,maven比ANT好多了,具体好在哪里大家可以到网...

    业余草
  • 解密 Redis 助力双 11 背后电商秒杀系统

    原文链接:http://t.cn/EAlQqQD

    业余草
  • 记一次使用 Lombok 翻车造成的事故!

    最近有粉丝说,涛哥,为什么你写的文章头部要带一个 slogan。我说,这是因为我的文章,被腾讯云,csdn等“同步”走了。加个 slogan,不迷路!

    业余草
  • ansible自动化部署工具

    Ansible是一种IT自动化工具。它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新。Ansible适用于管理企业IT基础设施,从具有少...

    yuezhimi
  • java打包成jar|执行jar包中的main方法

    执行后总是运行指定的主方法,如果 jar 中有多个 main 方法,那么如何运行指定的 main 方法呢? 用下面的命令试试看:

    静默加载
  • 在maven项目中解决第三方jar包依赖的问题

    在maven项目中,对于那些在maven仓库中不存在的第三方jar,依赖解决通常有如下解决方法:

    2Simple
  • WordPress记住评论用户信息的js版本,直接操作cookie无视缓存

    这两天一直在折腾博客的评论功能,原因是开启了百度云加速的 html 缓存,导致原有的记住评论者信息的功能失效了,每次刷新文章页面,用户信息都会清空。 于是就折腾...

    张戈
  • SSH框架之Struts2第一篇

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    海仔
  • 常见的网站建站程序有哪些

    以前写过少见网站的类别,那有所不同网站类别需要的程序是不-样的,而且有所不同的程序会带来有所不同的效能以及使用者感受度,甚至可以节约融资。那常见的网站程序有哪些...

    申霖
  • javaWeb idea学习笔记(三)Servlet的配置

    当服务器接收到客户端浏览器的请求后,会解析请求的URL路径,获取访问的servlet资源路径

    逆回十六夜

扫码关注云+社区

领取腾讯云代金券