环境:
1,OS:Windows7
2,JDK:jdk1.7
3,Apache Ant:apache-ant-1.9.6
步骤:
1,解压apache-ant-1.9.6-bin.zip
2,添加环境变量ANT_HOME,比如C:\apache-ant-1.9.6-bin
3,Path变量添加ant的bin目录,比如%ANT_HOME%\bin
目标流程:
1,删除web project web-info目录下的classes目录;删除.war文件
2,建立web project web-info目录下的classes目录
3,复制src下的非java文件
4,编译生成java的class文件
5,打包成.war文件
Ant build.xml文件
<?xml version="1.0" encoding="UTF-8"?> <project name="webprjtest" default="createwebwarfile" basedir="F:/"> <property name="webproject.base" value="${basedir}/webtestproject/" ></property> <property name="webproject.src" value="${webproject.base}/src/" ></property> <property name="webproject.root" value="${webproject.base}/WebRoot/" ></property> <property name="webproject.lib" value="${webproject.root}/WEB-INF/lib/"></property> <property name="webproject.classes" value="${webproject.root}/WEB-INF/classes/"></property> <property name="appname" value="${ant.project.name}" ></property> <property name="warfile" value="${basedir}/${appname}.war" ></property> <!-- J2EE lib--> <property name="tomcat.lib" value="C:/tomcat/lib/"></property> <target name="del"> <delete dir="${webproject.classes}"></delete> <delete file="${warfile}"></delete> </target> <target name="md"> <mkdir dir="${webproject.classes}"/> </target> <path id="classpath"> <fileset dir="${webproject.lib}"> <include name="*.jar"/> </fileset> <fileset dir="${tomcat.lib}"> <include name="*.jar"/> </fileset> </path> <property name="classpath" refid="classpath"></property> <target name="buildjava" description="Build java files and Copy other files in src ."> <javac srcdir="${webproject.src}" destdir="${webproject.classes}" classpath="${classpath}" encoding="utf-8" debug="true" deprecation="true"> </javac> </target> <target name="cp"> <copy todir="${webproject.classes}"> <fileset dir="${webproject.src}"> <exclude name="**/*.java"/> </fileset> </copy> </target> <target name="createwebwarfile" depends="del,md,cp,buildjava" description="Create War file from Web-Project ."> <war destfile="${warfile}" webxml="${webproject.root}/WEB-INF/web.xml"> <fileset dir="${webproject.root}" > <include name="**" /> </fileset> </war> </target> </project>
===================================================================================
环境:
1,OS:Windows7
2,JDK:jdk1.8
3,Apache Ant:apache-ant-1.9.6
4,Tomcat8.5.3
目标:
对JavaWeb项目编译、打包、并在tomcat中运行
代码:
<?xml version="1.0" encoding="UTF-8"?> <!-- ====================================================================== ====================================================================== --> <project name="monitor" default="default" basedir="D:/workspace_ElipseJEE_mars2"> <description> Web Project built with JDK8 and run on Tomcat8.5.3 </description> <record action="start" append="no" loglevel="info" name="e:/antbuildwar.log"/> <property name="webprj.base" value="${basedir}/monitor/"></property> <property name="webprj.src" value="${webprj.base}/src/"></property> <property name="webprj.root" value="${webprj.base}/WebRoot/"></property> <property name="webprj.lib" value="${webprj.root}/WEB-INF/lib/"></property> <property name="webprj.classes" value="${webprj.root}/WEB-INF/classes/"></property> <property name="appname" value="${ant.project.name}"></property> <property name="warfile" value="${basedir}/${appname}.war"></property> <!-- tomcat --> <property name="tomcat.home" value="F:/software/develop/apache-tomcat-8.5.3_win32/"></property> <property name="tomcat.lib" value="${tomcat.home}/lib/"></property> <property name="tomcat.webappfoler" value="${tomcat.home}/webapps/"></property> <!-- ================================= target: default ================================= --> <target name="default" depends="startuptomcat8.5" description="description"> </target> <!-- Delete old *.class folder and .war file --> <target name="delclasses"> <delete dir="${webprj.classes}"></delete> <delete file="${warfile}"></delete> </target> <!-- Create classes dir --> <target name="md" > <mkdir dir="${webprj.classes}"/> </target> <!-- 需要引用的jar包 --> <path id="classpathset"> <fileset dir="${webprj.lib}"> <include name="*.jar"/> </fileset> <fileset dir="${tomcat.lib}"> <include name="*.jar"/> </fileset> </path> <property name="classpath" refid="classpathset"></property> <!-- - - - - - - - - - - - - - - - - - target: buildjava,编译 - - - - - - - - - - - - - - - - - --> <target name="buildjava"> <javac verbose="yes" listfiles="yes" classpath="${classpath}" srcdir="${webprj.src}" destdir="${webprj.classes}" fork="java$$javac.exe" source="1.8" target="1.8" encoding="utf-8" debug="on" deprecation="on" > <compilerarg value="-Xlint"/> </javac> </target> <!-- - - - - - - - - - - - - - - - - - target: cp,复制其他一些非java文件 - - - - - - - - - - - - - - - - - --> <target name="cp"> <copy todir="${webprj.classes}"> <fileset dir="${webprj.src}"> <exclude name="**/*.java"/> </fileset> </copy> </target> <!-- - - - - - - - - - - - - - - - - - target: createwarfile - - - - - - - - - - - - - - - - - --> <target name="createwarfile" depends="delclasses,md,cp,buildjava"> <war destfile="${warfile}" webxml="${webprj.root}/WEB-INF/web.xml"> <fileset dir="${webprj.root}"> <include name="**"/> </fileset> </war> </target> <!-- - - - - - - - - - - - - - - - - - target: cpwar - - - - - - - - - - - - - - - - - --> <target name="cpwar" depends="createwarfile"> <copy todir="${tomcat.webappfoler}" file="${warfile}" overwrite="yes"></copy> </target> <!-- - - - - - - - - - - - - - - - - - target: startuptomcat8.5, 执行外部命令, 如果exec中没有dir属性设置,那么tomcat不启动成功,报CATALINA_HOME没设置 - - - - - - - - - - - - - - - - - --> <target name="startuptomcat8.5" depends="cpwar"> <exec executable="cmd.exe" dir="${tomcat.home}"> <arg line="/c ${tomcat.home}/bin/startup.bat"/> </exec> </target> </project>