欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-01-12 12:53:40
...
                                                       使用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,
使用ant打包WAR,超详细教程 使用ant打包WAR,超详细教程
打开cmd.
(2) 使用ant打包WAR,超详细教程使用ant打包WAR,超详细教程
(3)切换到build.xm目录,如果是其他盘可以打:d:回车,在cd进目录。
使用ant打包WAR,超详细教程
(4)敲ant回车,就会运行
(5)正常的界面
使用ant打包WAR,超详细教程使用ant打包WAR,超详细教程




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




上一篇: maven合并war包

下一篇: