使用ant打包WAR,超详细教程

                                                       使用ant编译打成WAR包
总体思路:
一、下载安装ant相关组件。
二、配置系统环境变量
三、创建build.xml
四、运行ant。
备注:由于是自己查询大量文章才完成的,如果有写得错误的希望各位指出。以下操作是在windows系统下。

详细步骤:
一、下载安装ant相关组件。
(1)这里用到的版本1.8.4是http://archive.apache.org/dist/ant/binaries/apache-ant-1.8.4-bin.zip
想了解ant的可以到官网看看:http://ant.apache.org/
(2)下载后找个路径解压,我的是D:\kfSoft\apache-ant-1.8.4-bin
二、配置系统环境变量
ant_home:D:\kfSoft\apache-ant-1.8.4-bin\apache-ant-1.8.4
PATH:D:\kfSoft\apache-ant-1.8.4-bin\apache-ant-1.8.4\bin
三、创建build.xml
我需要打包的java web路径:C:\Program Files\eclipseWCS\project\wcs-dev
所以在这个目录先创建build.xml,当然可以在别的路径。只要相对应bulid.xml里面内容的路径取对就可以。
以下是我的build.xml内容:
<?xml version="1.0" encoding="UTF-8"?>  
<project name="wcs" basedir="." default="wcs">  
	<property name="classpath_lib" value="WebContent/WEB-INF/lib" />  
	<property name="tomcat_classpath_lib" value="C:/Program Files/apache-tomcat-7.0.69-windows-x64/apache-tomcat-7.0.69/lib" /> 
	<property name="jdk_classpath_lib" location="C:/Program Files/Java/jdk1.7.0_80/lib/missioncontrol/plugins" />  
	<property name="eclipse_classpath_lib" location="C:/Program Files/eclipseWCS/plugins/org.junit_4.12.0.v201504281640" />  
	<property name="WebContent" value="." />  

	<target name="clean"  description="清除打包用临时文件">  
		<delete dir="C:/Program Files/eclipseWCS/project/webapp"/>  

		<mkdir dir="C:/Program Files/eclipseWCS/project/webapp" /> 		
	</target>  

	<!-- 编译需要的lib -->
	<path id="classpath">    
		<fileset dir="${classpath_lib}">    
			<include name="*.jar"/>    
		</fileset> 
		<fileset dir="${tomcat_classpath_lib}">    
			<include name="*.jar"/>    
		</fileset> 	
		<fileset dir="${jdk_classpath_lib}">    
			<include name="*.jar"/>    
		</fileset> 
		<fileset dir="${eclipse_classpath_lib}">    
			<include name="*.jar"/>    
		</fileset> 

	</path>    

	<property name="debuglevel" value="source,lines,vars"/>  

	<property name="target" value="1.6"/>  
	<property name="source" value="1.6"/>  
	<property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter" /> 

	<patternset id="no.java">  
		<exclude name="WebContent/**/*.java" /> 
		<exclude name="build/**/*.java" /> 
		<exclude name="C:/Program Files/eclipseWCS/project/wcs-dev/fp.demo/**/*.java" /> 
	</patternset>  

	<target name="init" depends="clean">  
		<property name="build" value="C:/Program Files/eclipseWCS/project/webapp"></property>  
		<property name="src" value="."></property>  
		<mkdir dir="${build}"/>  
		<mkdir dir="${build}/WEB-INF"/>  
		<mkdir dir="${build}/WEB-INF/classes"/>  
		<mkdir dir="${build}/WEB-INF/lib"/>  
		<copy todir="${build}">  
			<fileset dir="${basedir}/WebContent">  
				<include name="WEB-INF/**" />  
				<include name="**" />  
			</fileset>  
		</copy>  
		<copy todir="${build}/WEB-INF/classes">   
			<fileset dir="${basedir}/resources">

			</fileset>  
		</copy> 
	</target>  
	<target name="complie" depends="init">    
		<javac 
		  nowarn="on"
		  source="1.7"
		  target="1.7"
		  deprecation="true"
		  debug="true" encoding="UTF-8"
		  destdir="${build}/WEB-INF/classes"
		  classpathref="classpath" includeantruntime="on"
		   >
			<src  path="${src}/bom"/>
			<src  path="${src}/business.mail"/>
			<src  path="${src}/resources"/>
			<src  path="${src}/resources.i18n"/>
			<src  path="${src}/resources.business"/>
			<src  path="${src}/entity"/>
			<src  path="${src}/framework"/>
			<src  path="${src}/business.common"/>
			<src  path="${src}/business.management"/>
			<src  path="${src}/business.parammng"/>
			<src  path="${src}/business.product"/>
			<src  path="${src}/business.customer"/>
			<src  path="${src}/business.project"/>
			<src  path="${src}/business.finarpt"/>
			<src  path="${src}/business.credit"/>
			<src  path="${src}/business.loanapply"/>
			<src  path="${src}/business.gage"/>
			<src  path="${src}/business.col"/>
			<src  path="${src}/business.postloan"/>
			<src  path="${src}/business.postloanalter"/>
			<src  path="${src}/business.npa"/>
			<src  path="${src}/business.warning"/>
			<src  path="${src}/business.workflow"/>
			<src  path="${src}/business.inquiryprint"/>
			<src  path="${src}/business.ace"/>
			<src  path="${src}/business.archive"/>
			<src  path="${src}/business.analyze"/>
			<src  path="${src}/business.comm"/>
			<src  path="${src}/fp.demo"/>
			<src  path="${src}/business.grademodel"/>
			<src  path="${src}/business.corpcredit"/>
			<src  path="${src}/business.corploan"/>
			<src  path="${src}/business.notarizeinfo"/>
			<src  path="${src}/business.interface"/>
			<src  path="${src}/business.coupon"/>
			<src  path="${src}/business.questionnaire"/>
			<src  path="${src}/business.app"/>
		</javac>

		<!-- srcdir 源目录(在这里为源代码目录)destdir目标目录 即编译完成后存放class文件的目录 -->
	</target>  
	<target name="wcs" depends="complie">  
		<war warfile="${build}/wcs.war" webxml="${build}/WEB-INF/web.xml">    


			<fileset dir="${build}"/>    
		</war>    

	</target> 

</project>  


需要注意的地方:
1、<project name="wcs" basedir="." default="wcs">   这里basedir是路径,指build.xml所在路径。
前面说到build放在不同地方就要注意修改对应路径。defalut指的是target标签的name。这里一定要写好,不然会报
  does not exist in the project
2、由于我的项目文件是UTF-8,不是无BOM的编码格式。所以使用jdk去编译代码时会报错。
报:编码 UTF8 的不可映射字符。解决办法是使用eclipse的jdt编译。
(1)org.eclipse.jdt.compiler.tool_1.1.0.v20150513-2007.jar、org.eclipse.jdt.core_3.11.2.v20160128-0629.jar、 org.eclipse.jdt.debug.ui_3.7.101.v20160203-1236.jar、jdtCompilerAdapter.jar-这个jar在 org.eclipse.jdt.core_3.11.2.v20160128-0629.jar里面拿出来即可。
以上3个jar在C:\Program Files\eclipseWCS\plugins。eclipse软件目录下。把他放在:D:\kfSoft\apache-ant-1.8.4-bin\apache- ant-1.8.4\lib ant的目录下。
具体解决办法: http://www.makaidong.com/%E5%8D%9A%E5%AE%A2%E5%9B%AD%E7%9F%A5%E8%AF%86%E5%BA%93/23434.shtml
转载请注明出处:Ant编译utf-8非法字符:/65279 解决方法 - 博客园


3、<src path="${src}/bom"/> 这行指定需要编译的目录。如果不知道可以看web项目下的.classpath文件,kind="src"这个就是
所有需要编译的目录。
kind="con"这个指需要用到的jar。这里是我的项目比较特殊,一般java web项目都在src目录下。但是我的项目没有src,都是和src同级。
4、 <path id="classpath"> 这个是编译class时使用到的所有jar。classpath_lib指我项目本身用到的jar。tomcat_classpath_lib是tomcat7使用 的jar jdk_classpath_lib这个是jdk,我用的是1.7的版本。eclipse_classpath_lib是junit有些项目可能不用可以不引用。
5、<patternset id="no.java">   本身是拿来排除不需要编译的地方。这里我没有测试。因为有些类不用的,但是编译时发现他引入的包或者继 承的类没有就是编译不过去。这样会使整个ant失败。
6、<target name="wcs" depends="complie"> 这个是打war包命令。
7、<property name="build" value="C:/Program Files/eclipseWCS/project/webapp"></property> 这个是需要打war路径。
8、<target name="init"> 这个标签是复制一些必要的文件。如果不知道要复制什么文件可以到项目的.settings下的 org.eclipse.wst.common.component用文本打开。你就知道需要复制哪些文件了。deploy-path是目标路径,source-path这个是原路 径。把source-path的文件复制到deploy-path去。



四、运行ant
(1)win+r,

打开cmd.
(2)
(3)切换到build.xm目录,如果是其他盘可以打:d:回车,在cd进目录。

(4)敲ant回车,就会运行
(5)正常的界面





注明:后续可以添加上传server服务器,自动部署。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值