查看更多教程 https://on itroad.com
build.xml 文件
这是构建文件示例,其中包含将应用程序打包为 war 文件所需的所有参数。
根据要求随意修改它。
<?xml version="1.0" ?> <project name="AntWarFileExample" default="war"> <path id="compile.classpath"> <fileset dir="WebContent/WEB-INF/lib"> <include name="*.jar"/> </fileset> </path> <target name="init"> <mkdir dir="build/classes"/> <mkdir dir="dist" /> </target> <target name="compile" depends="init" > <javac destdir="build/classes" debug="true" srcdir="src"> <classpath refid="compile.classpath"/> </javac> </target> <target name="war" depends="compile"> <war destfile="dist/MyWebApplication.war" webxml="WebContent/WEB-INF/web.xml"> <fileset dir="WebContent"/> <lib dir="WebContent/WEB-INF/lib"/> <classes dir="build/classes"/> </war> </target> <target name="clean"> <delete dir="dist" /> <delete dir="build" /> </target> </project>
build.xml - 更多配置示例
根据需要使用片段或者整个文件。
它对构建战争文件的各个步骤有更深入的控制。
<project name="AntWarFileExample" basedir=".." default="war">
<!-- project-specific variables -->
<property name="jsp.dir.name" value="myapp" />
<property name="package.name" value="${jsp.dir.name}.war" />
<property name="webapp.dir" value="/Users/al/tomcat-6.0.16/webapps" />
<property environment="env" />
<property name="build.dir" value="build" />
<property file="${build.dir}/build.${env.HOSTNAME}" />
<property name="lib.dir" value="lib" />
<property name="pages.dir" value="pages" />
<property name="src.dir" value="src" />
<property name="src.tests.dir" value="src-tests" />
<property name="resources.dir" value="resources" />
<property name="dest.dir" value="target" />
<!-- put everything in a temp folder with the right structure during the build -->
<property name="temp.dir" value="temp" />
<property name="temp.dir.web-inf" value="${temp.dir}/WEB-INF" />
<property name="temp.dir.lib" value="${temp.dir.web-inf}/lib" />
<property name="temp.dir.classes" value="${temp.dir.web-inf}/classes" />
<property name="temp.dir.meta-inf" value="${temp.dir}/META-INF" />
<property name="package.file" value="${dest.dir}/${package.name}" />
<path id="build.class.path">
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
</path>
<target name="clean">
<delete>
<fileset dir="${dest.dir}" includes="**/*"/>
</delete>
<delete dir="${temp.dir}" />
<delete dir="${temp.dir.classes}" />
<delete dir="${temp.dir.meta-inf}" />
<delete dir="${temp.dir.web-inf}" />
</target>
<target name="prepare" depends="clean">
<mkdir dir="${dest.dir}" />
<mkdir dir="${temp.dir}" />
<mkdir dir="${temp.dir.lib}" />
<mkdir dir="${temp.dir.meta-inf}" />
<mkdir dir="${temp.dir.web-inf}" />
<mkdir dir="${temp.dir.classes}" />
</target>
<!-- COMPILE -->
<target name="compile" depends="prepare">
<echo>=== COMPILE ===</echo>
<echo>Compiling ${src.dir} files ...</echo>
<javac debug="on" srcdir="${src.dir}" destdir="${temp.dir.classes}" includes="**/*">
<classpath refid="build.class.path" />
</javac>
<!-- compile files on the src-tests path -->
<echo>Compiling ${src.tests.dir} files ...</echo>
<javac debug="on" srcdir="${src.tests.dir}" destdir="${temp.dir.classes}" includes="com/**">
<classpath refid="build.class.path" />
</javac>
</target>
<!-- PACKAGE -->
<target name="package" depends="compile">
<echo>=== PACKAGE ===</echo>
<!-- copy the config files -->
<copy file="${resources.dir}/MANIFEST.MF" tofile="${temp.dir.meta-inf}/MANIFEST.MF" overwrite="true" />
<copy file="${resources.dir}/web.xml" tofile="${temp.dir.web-inf}/web.xml" overwrite="true" />
<copy file="${resources.dir}/managed-beans.xml" tofile="${temp.dir.web-inf}/managed-beans.xml" overwrite="true" />
<copy file="${resources.dir}/navigation-rules.xml" tofile="${temp.dir.web-inf}/navigation-rules.xml" overwrite="true" />
<copy todir="${temp.dir.classes}">
<fileset dir="${src.dir}">
<include name="**/*.xml"/>
<include name="**/*.xsl"/>
</fileset>
</copy>
<!-- the ant war task. with all resources in place, create the war file -->
<war destfile="${package.file}" webxml="${temp.dir.web-inf}/web.xml" basedir="${temp.dir}">
<fileset dir="${pages.dir}"/>
<lib dir="${lib.dir}" />
<classes dir="${temp.dir.classes}" />
</war>
</target>
<!-- INSTALL -->
<target name="war" depends="package">
<echo>=== PACKAGING WAR ===</echo>
<copy file="${package.file}" tofile="${webapp.dir}/${package.name}" overwrite="true" />
</target>
</project>
运行ANT构建
要运行构建,我们有两个选择
- 从命令提示符运行。要运行的命令是:
$ ant -f build.xml
- 从eclipse运行。选择此菜单选项。
右键点击build.xml -> Run as -> Ant build
将运行构建脚本,我们将在控制台/命令提示符中看到此构建过程输出。
Buildfile: C:\Users\lokesh\workspace\MyWebApplication\build.xml
init:
[mkdir] Created dir: C:\Users\lokesh\workspace\MyWebApplication\dist
compile:
[javac] C:\Users\lokesh\workspace\MyWebApplication\build.xml:16: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
war:
[war] Building war: C:\Users\lokesh\workspace\MyWebApplication\dist\MyWebApplication.war
BUILD SUCCESSFUL
Total time: 829 milliseconds
我们可以在dist文件夹中验证生成的war 文件(或者如果我们更改了路径,则检查该位置)。
创建要构建的应用程序
我在 eclipse 中创建了一个带有几个文件的 java web 应用程序项目。
一个文件在源文件夹中,其他文件在WEB-INF文件夹中,例如web.xml。
安装ANT
- 从 ant.apache.org 下载 Apache Ant。
- 将 zip 文件解压缩到我们选择的目录结构中。
- 将
ANT_HOME环境变量设置为此位置。 - 在你的
PATH环境变量中包含%ANT_HOME%/bin目录。 - 通过打开命令行并在推荐行中输入“ant -version”来检查安装。
$ ant -version Apache Ant(TM) version 1.10.2 compiled on February 3 2018
日期:2020-09-17 00:10:39 来源:oir作者:oir
