增加一段批处理文件 deploy.bat
@echo off
echo 该工程编译需要JDK5.0或以上版本,请保证已设置JAVA_HOME环境变量为JDK5安装目录
@echo off
if "%JAVA_HOME%" == "" goto error
@echo on
"%JAVA_HOME%/bin/java" -cp lib/ant.jar;lib/ant-launcher.jar;lib/ant-contrib.jar;"%JAVA_HOME%/lib/tools.jar" -Dmode=%2 org.apache.tools.ant.launch.Launcher -buildfile build.xml %1
昨天重新翻新简单的学习了下,ant编译部署,每次总是匆匆而看,瞬间则遗忘,这次做个笔记,以备下次,还是那句话灵验,好记性,不如好笔头。
先贴出示例工程中用到的build.xml内容:
<?xml version="1.0"
encoding="UTF-8"?>
<project name="ant-project" default="run" basedir="../">
<!-- 这里的basedir是工程的目录为根目录 一般basedir="."表示的是build.xml文件所在的相对目录为根目录即src -->
<echo message="工程的目录是:${basedir}" />
<!-- =================================
property: init
...
================================= -->
<property name="src" value="src" />
<property name="dest" value="/${basedir}/WebRoot/WEB-INF/classes" />
<!-- 定义发布目录 把工程copy到tomcat的工作目录下-->
<property name="webApp" value="./deploy/war/" />
<property name="lib.dir" location="/${basedir}/WebRoot/WEB-INF/lib" />
<property name="classpath" location="/${basedir}/deploy/classes" />
<property name="webname" value="cxf" />
<!-- =================================
classpath:
init ...
================================= -->
<!--定义项目编译的时候,以来的lib包的路径-->
<path id="project.class.path">
<pathelement path="${classpath}" />
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- =================================
target: init
=================================
-->
<target name="init">
<delete
dir="/${basedir}/deploy/classes"></delete>
<!-- 删除war包-->
<delete file="/${basedir}/deploy/${webname}.war"></delete>
<!-- 删除war目录-->
<delete dir="/${basedir}/deploy/war/"></delete>
<!-- 新建目录,比如新建编译需要的class文件路径 -->
<mkdir dir="/${basedir}/deploy/classes" />
</target>
<!-- =================================
target: compile
=================================
-->
<!-- 编译class文件-->
<target name="compile" depends="init">
<!-- <javac
srcdir="${src}"
destdir="/${basedir}/deploy/classes"></javac> -->
<!-- target="1.4"
表示编译器用1.4的方式编译,当然也可以采用1.6,classpath 中的refid这表示依赖于那些jar包编译 -->
<javac fork="true" target="1.6" srcdir="src" destdir="${classpath}" debug="false" >
<classpath refid="project.class.path" />
</javac>
</target>
<!-- =================================
target:
run
================================= -->
<target name="run" depends="compile" description="description">
<!--除了class文件外,其他文件拷贝到tomcat目录下-->
<copy todir="${webApp}" overwrite="true">
<fileset dir="${basedir}/WebRoot" excludes="**/*.class" />
</copy>
<copy todir="${webApp}/WEB-INF/classes/" overwrite="true">
<fileset dir="/${basedir}/deploy/classes/">
<include
name="**/*.class" />
</fileset>
</copy>
<!--将class文件打包,放到/WEB-INF/lib目录下-->
<!--
<jar
destfile="${webApp}/WEB-INF/lib/test.jar">
<fileset dir="/${basedir}/deploy/classes">
<include name="**/*.class" />
</fileset>
</jar>
-->
<war destfile="/${basedir}/deploy/${webname}.war">
<fileset dir="/${basedir}/deploy/war">
</fileset>
</war>
</target>
</project>
工程目录结构:
从以上的XML文件可以看出,整个编译部署的步骤分为三步:
1、 初始化,包括属性定义,类路径,目录删除已经目录创建;
2、 编译java文件;
3、 打包文件,如jar,war
分为三步,这样我觉得哈理解起来很容易,至于里面具体的设置参数我接下来再简单讲讲我从别人那地方理解的,嘎嘎,
编译部署,整个过程与路径有着千丝万缕的关系,当时是相对路径了,其中参考物就是build.xml文件的路径,
<?xml version="1.0"
encoding="UTF-8"?>
<!-- 这里的basedir是ant工程运行的目录,一般basedir="."表示的是build.xml文件所在的目录,basedir=”../”表示build.xml文件所在的目录的上级目录;name属性名称ant project名称,default默认执行target的名称-->
<project name="ant-project" default="run" basedir="../">
<!—根据日志或监控器的级别输出信息,包括 message,file,append,level-->
<echo message="工程的目录是:${basedir}" />
<!-- 变量定义与初始化,如定义文件夹路径和文件名称等,使用这些变量语法是:${} -->
<property name="src" value="src" />
<property name="dest" value="/${basedir}/WebRoot/WEB-INF/classes" />
<!-- 定义发布目录 把工程copy到tomcat的工作目录下-->
<property name="webApp" value="./deploy/war/" />
<property name="lib.dir" location="/${basedir}/WebRoot/WEB-INF/lib" />
<property name="classpath" location="/${basedir}/deploy/classes" />
<property name="webname" value="cxf" />
<!-- =================================
classpath:
init ...
================================= -->
<!--定义项目编译时,所依赖类的路径配置;pathelement指定目录或jar文件,节点属性有 location与path,location指定jar文件,path指目录;fileset指定目录下的所有文件,属性include与exclude -->
<path id="project.class.path">
<pathelement path="${classpath}" />
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- =================================
target: init
=================================
-->
<!—delete是删除文件或者目录,属性有dir和file;
<delete includeEmptyDirs=”true”>
<fileset dir=”.”
includes=”**/*.bak”/>
</delete>
mkdir是指创建文件或在目录,属性有dir和file-->
<target name="init">
<delete
dir="/${basedir}/deploy/classes"></delete>
<!-- 删除war包-->
<delete file="/${basedir}/deploy/${webname}.war"></delete>
<!-- 删除war目录-->
<delete dir="/${basedir}/deploy/war/"></delete>
<!-- 新建目录,比如新建编译需要的class文件路径 -->
<mkdir dir="/${basedir}/deploy/classes" />
</target>
<!-- =================================
target: compile
=================================
-->
<!-- 编译class文件-->
<target name="compile" depends="init">
<!-- <javac
srcdir="${src}"
destdir="/${basedir}/deploy/classes"></javac> -->
<!-- target="1.4"
表示编译器用1.4的方式编译,当然也可以采用1.6,classpath 中的refid这表示依赖于那些jar包编译 -->
<javac fork="true" target="1.6" srcdir="src" destdir="${classpath}" debug="false" >
<classpath refid="project.class.path" />
</javac>
</target>
<!-- =================================
target:
run
================================= -->
<target name="run" depends="compile" description="description">
<!--除了class文件外,其他文件拷贝到tomcat目录下-->
<copy todir="${webApp}" overwrite="true">
<fileset dir="${basedir}/WebRoot" excludes="**/*.class" />
</copy>
<copy todir="${webApp}/WEB-INF/classes/" overwrite="true">
<fileset dir="/${basedir}/deploy/classes/">
<include
name="**/*.class" />
</fileset>
</copy>
<!--将class文件打包,放到/WEB-INF/lib目录下-->
<!--
<jar
destfile="${webApp}/WEB-INF/lib/test.jar">
<fileset dir="/${basedir}/deploy/classes">
<include name="**/*.class" />
</fileset>
</jar>
-->
<war destfile="/${basedir}/deploy/${webname}.war">
<fileset dir="/${basedir}/deploy/war">
</fileset>
</war>
</target>
</project>
- 大小: 27.4 KB
分享到:
相关推荐
Ant是基于XML的,它的核心在于`build.xml`文件,这个文件是项目的构建脚本,详细定义了构建过程中的各种任务和依赖关系。 标题“一个常用的ant的build.xml”暗示了我们讨论的是一个标准且常见的Ant构建配置文件。...
ANT Build.xml 自动编译
《Ant的build.xml模板详解与应用》 在软件开发领域,构建工具是不可或缺的一部分,它帮助开发者自动化地完成编译、测试、打包等任务。Apache Ant作为Java领域的一款经典构建工具,以其灵活性和强大的功能深受广大...
它的核心在于一个名为`build.xml`的配置文件,它定义了项目的构建过程,包括编译、测试、打包和部署等各个阶段。在本文中,我们将深入探讨`build.xml`的结构、元素以及如何使用它来管理Java项目。 1. **Ant基本概念...
ANT Build.xml 自动编译
Apache Ant 是一个广泛使用的Java构建工具,它以XML格式定义构建脚本,即`build.xml`文件。这个文件包含了构建项目的整个流程,从编译源代码到生成最终的可执行或部署包。下面我们将深入探讨`build.xml`的使用以及...
ANT是一个基于Java的构建工具,它允许开发者定义任务来编译、打包、测试和部署应用程序。"生成ANT所需要的Build.xml文件"这一主题,核心在于如何通过Python程序自动生成ANT的配置文件——build.xml。 首先,我们要...
介绍了如何通过ant进行java web工程的编译操作的详细配置
2. **Ant自动化构建**:Apache Ant是一种基于XML的构建工具,常用于Java项目的编译、打包和部署。在接口测试场景中,Ant可以用来自动化执行JMeter测试计划,并生成测试报告。通过在`build.xml`文件中定义目标和任务...
《Ant构建Java Web应用:深度解析build.xml》 在软件开发过程中,自动化构建工具起着至关重要的作用,它们能够帮助开发者高效地管理项目,确保代码的编译、测试和部署等流程的一致性和可靠性。Apache Ant是Java领域...
java项目打包build.xml文件 ant打包
Apache Ant是Java领域广泛应用的一个构建工具,其核心在于一个名为`build.xml`的配置文件。本文将深入探讨`build.xml`的编写及其在项目构建中的应用。 `build.xml`是Ant的工作剧本,它定义了一系列的构建任务和目标...
Ant build.xml 文件详解 Ant 是一个项目管理工具,相比make命令,gnumake和nmake等编译工具,Ant克服了这些工具的缺陷。Ant 的优点包括跨平台性、操作简单、易于集成到开发环境中。Ant 的构建文件是 XML 格式的文件...
下面是一个简单的`build.xml`示例,展示了如何使用Ant构建一个简单的Java项目。 ```xml <project name="MyApp" default="build" basedir="."> <property name="src.dir" value="src"/> <property name="build....
5. **文件集(Filesets)**:在处理大量文件时,Ant提供了文件集的概念,它可以用来指定一组文件,如`${src.dir}" includes="**/*.java"/>`会包含所有源代码目录下的.java文件。 6. **类路径(Classpath)**:在...
一个普通java程序用ant打包的列子,完整的,里面采用的是eclipse自带的编译插件进行的打包,需要结合eclipse中的插件一起使用
在IT行业中,构建工具是开发流程中的重要...总的来说,Ant通过build.xml文件提供了灵活且强大的项目构建能力,使得Java开发团队可以高效地管理项目构建流程,而"ant build.xml范例"是理解和学习Ant构建工具的关键入口。
Apache Ant 是一个Java平台上的开源构建工具,它通过XML格式的配置文件(如`build.xml`)来定义构建任务。Ant的设计理念是“简单就是美”,它使得Java项目的构建过程变得可配置且易于理解。本文将深入解析`build.xml...
经过几天学习,总结出ant build.xml的基本版,实现了: <!--初始化操作--> <!--拷贝操作--> <!--编译--> <!--war打包--> 执行顺序为: <!--project的default属性为build,所以本target...