折腾了大半天,可算捣腾出来了,这里需要提醒注意如下几点:
1、如果jdk是1.6及以下,则需要使用的ant版本是1.9.x;
2、如果jdk是1.8,则需要使用ant版本是1.10.x;
3、可用eclipse导出war包,将lib目录下的jar包放到一个目录下,然后直接引用,避免遗漏掉jar包没导入进去。
以下是build.xml文件内容,安装好ant后,直接执行ant build.xml即可打包。
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义一个工程,默认任务为warFile。 -->
<project name="bing-info" default="warFile" basedir=".">
<!-- 指定jdk 貌似这里指定也没什么用~-->
<property name="env.JAVA_HOME" value="C:/Program Files/Java/jdk1.8.0_101"/>
<!-- 定义属性,打成war包的名称。 -->
<property name="warFileName" value="nbAPP.war"></property>
<!-- 指定war包路径及依赖包路径 这里需要指定工程的路径 -->
<property name="compilePath" value="D:/project/nbAPP"/>
<!-- 定义路径,编译java文件时用到的jar包。 -->
<path id="project.lib">
<fileset dir="${basedir}/lib">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 -->
<target name="clean">
<delete dir="${compilePath}/build" />
<mkdir dir="${compilePath}/build" />
</target>
<!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 -->
<target name="compile" depends="clean">
<javac srcdir="${basedir}/src/main" debug="true" includeantruntime="false" encoding="UTF-8" >
<classpath refid="project.lib">
</classpath>
</javac>
</target>
<!-- 定义默认任务,将class文件集合成jar包。 -->
<target name="warFile" depends="compile">
<!-- 删除原有war包。 -->
<delete dir="${compilePath}/${warFileName}" />
<!-- 建立新war包。 -->
<war destfile="${compilePath}/${warFileName}" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
<!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->
<fileset dir="${basedir}/WebRoot">
<include name="**/**.*" />
<exclude name="**/*.jar"/>
<include name="WEB-INF/classes/**"/>
</fileset>
<!-- 将jar和class文件拷贝到war包的对应路径下。 -->
<lib dir="${compilePath}/lib" />
<classes dir="${compilePath}/build" />
<!-- 将资源文件拷贝进war对应路径下 -->
<classes dir="${basedir}/src/main/resources" />
</war>
</target>
</project>
网友评论