Ant命令详解和build.xml

1、Ant命令详解

Ant项目文件的构建可编译,包,测试。这是Apache软件基金会jakarta一个子项目,具有跨平台性,操作简单,并且非常好上手

1、直接执行ant,当前build.xml文件下直接使用命令行进行执行,Ant会在当前文件夹下检索build.xml文件。假设找到了就执行该文件。执行所有的target,假设没有找到了会提示没有找到相关的build.xml文件。

2、 ant+target名字,可以指定执行一个或多个target,如ant clean 只执行clean

语法元素说明如下:
-help
显示描述ant 命令及其选项的帮助信息
-projecthelp
显示包含在构建文件中的、所有用户编写的帮助文档。即为各个中description 属性的文本,以及包含在元素中的任何文本。将有description 属性的目标列为主目标(Main target),没有此属性的目标则列为子目标(Subtarget)。
-version
要求ant 显示其版本信息,然后退出。
-quiet
抑制并非由构建文件中的echo 任务所产生的大多数消息。
-verbose
显示构建过程中每个操作的详细消息。此选项与-debug 选项只能选其一。
-debug
显示Ant 和任务开发人员已经标志为调试消息的消息。此选项与-verbose 只能选其一。
-emacs
对日志消息进行格式化,使它们能够很容易地由Emacs 的shell 模式(shellmode)所解析;也就是说,打印任务事件,但并不缩排,在其之前也没有[taskname]。
-logfile filename
将日志输出重定向到指定文件。
-logger classname

指定一个类来处理Ant 的日志记录。所指定的类必须实现了org.apache.tools.ant.BuildLogger 接口。
-listener classname
为Ant 声明一个监听类,并增加到其监听者列表中。在Ant与IDE或其他Java程序集成时,此选项非常有用。可以阅读第六章以了解有关监听者的更多信息。必须将所指定的监听类编写为可以处理Ant 的构建消息接发。
-buildfile filename
指定Ant 需要处理的构建文件。默认的构建文件为build.xml。
-Dproperty=value
在命令行上定义一个特性名-值对。
-find filename
指定Ant 应当处理的构建文件。与-buildfile 选项不同,如果所指定文件在当前目录中未找到,-find 就要求Ant 在其父目录中再进行搜索。这种搜索会继续在其祖先目录中进行,直至达到文件系统的根为止,在此如果文件还未找到,则构建失败。
-atuoproxy jdk1.5以上的可以使用代理设置
-nouserlib 运行ant时不使用用户lib中的jar包
-nice 设计主线程优先级
-logfile 使用指定的log日志
-noinput 不允许交互输入
-keep-going, -k 执行不依赖于所有目标
-propertyfile 加载所有属性配置文件 -d 属性文件优先

2、build.xml脚本

<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义一个工程,默认任务为warFile。 -->
<project name="Archive" default="warFile" basedir=".">

    <!-- 定义属性,打成war包的名称。 -->
    <property name="warFileName" value="Inspur.Ecgap.Archive.war"></property>
    <!--中间打包文件存储位置基目录-->
    <property name="build.target" value="${basedir}/target"></property>
    <!--打包classes-->
    <property name="build.target.classes" value="${build.target}/WEB-INF/classes"></property>
    <!--jar包-->
    <property name="build.target.lib" value="${build.target}/WEB-INF/lib"></property>
    <!--配置文件-->
    <property name="build.target.config" value="${build.target}/WEB-INF/config"></property>
    <!--页面文件-->
    <property name="build.target.pages" value="${build.target}/WEB-INF/pages"></property>

    <!-- 定义路径,编译java文件时用到的jar包。 -->
    <path id="project.lib">
        <fileset dir="./WebRoot/WEB-INF/lib">
            <include name="**/*.jar"/>
        </fileset>
    </path>

    <target name="clean" description="定义任务,清空任务:清空原有的打包文件,创建新的存储路径">
        <delete dir="${build.target}" />
        <mkdir dir="${build.target}" />
        <mkdir dir="${build.target}/WEB-INF" />
        <mkdir dir="${build.target.lib}" />
        <mkdir dir="${build.target.classes}" />
        <mkdir dir="${build.target.config}" />
        <mkdir dir="${build.target.pages}" />
    </target>

    <target name="compile" depends="clean" description="定义任务,编译src文件夹中的java文件,编译后的class文件放到 ${build.target.classes}下">
        <!--fork javac单开线程-->
        <javac fork="true" bootclasspath="${java.home}/lib/rt.jar;${java.home}/lib/jce.jar" encoding="UTF-8" srcdir="${basedir}/src" destdir="${build.target.classes}" includeantruntime="false" memoryinitialsize="1024m" memorymaximumsize="1024m">
            <classpath refid="project.lib">
            </classpath>
        </javac>
    </target>

    <target name="prepare" description="拷贝资源文件到${build.target.classes}">
        <copy todir="${build.target.classes}" description="拷贝所有的属性文件">
            <fileset dir="${basedir}/src/resource">
                <include name="**/**.*"/>
            </fileset>
        </copy>
    </target>

    <!-- 定义默认任务,将class文件集合成jar包。 -->
    <target name="warFile" depends="compile,prepare">
        <!-- 删除原有war包。 -->
        <delete dir="${build.target}/${warFileName}" />
        <!--拷贝lib到欲打包文件目录-->
        <copydir dest="${build.target.lib}" src="${basedir}/WebRoot/WEB-INF/lib" />
        <copydir dest="${build.target.pages}" src="${basedir}/WebRoot/WEB-INF/pages" />
        <copydir dest="${build.target.config}" src="${basedir}/WebRoot/WEB-INF/config" />
        <!--拷贝单个文件-->
        <copy file="${basedir}/WebRoot/WEB-INF/jboss-web.xml" tofile="${build.target}/WEB-INF/jboss-web.xml"/>
        <copydir dest="${build.target}/assets" src="${basedir}/WebRoot/assets" />
        <!-- 建立新war包。 -->
        <war destfile="${basedir}/${warFileName}" basedir="${build.target}" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
             <!--将非jar和非class文件拷贝到war包的对应路径下。 -->
            <!--<fileset dir="${build.target}/resources">-->
            <!--    <include name="**/**.*" />-->
            <!--    <exclude name="**/*.jar"/>-->
            <!--    <exclude name="**/*.class"/>-->
            <!--</fileset>-->
             <!--将jar和class文件拷贝到war包的对应路径下。 -->
            <!--改用上述基目录形式-->
            <!--<fileset dir="build" ></fileset>-->
            <!--<lib dir="${build.target}/webapp/WEB-INF/lib" />-->
            <!--<classes dir="${build.target}/build" />-->
        </war>
    </target>
</project>
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下命令指定使用 build.xml 文件进行 Ant 构建: ``` ant -buildfile build.xml ``` 其中,-buildfile 参数用于指定要使用的构建文件。在这个例子中,我们指定使用 build.xml 文件进行构建。 ### 回答2: Ant是一个非常流行的Java构建工具,可以用来构建Java项目、打包和部署Java应用等。在使用Ant进行构建时,我们需要指定构建所使用的build.xml文件。 build.xmlAnt构建工具中的一个配置文件,用来指定构建任务、目标和相关操作,也被称为构建脚本。在build.xml中,开发者可以指定构建过程中要执行的任务和操作,包括编译Java源代码、打包应用、部署到目标服务器等。 在指定Ant构建命令时,我们需要使用命令行或者IDE中的Ant插件。比如,在命令行中执行Ant构建命令时,可以在命令行中指定build.xml文件的路径,例如: ant -buildfile /path/to/build.xml 这个命令会告诉Ant构建工具使用指定路径下的build.xml文件来执行构建任务。如果没有指定-buildfile参数,则默认使用当前目录下的build.xml文件。 在IDE中使用Ant插件时,我们也需要指定build.xml文件的路径。具体操作可以根据不同的IDE而有所不同,通常可以在项目配置或者菜单中进行设置。 总之,无论是在命令行还是IDE中使用Ant构建工具,我们都需要指定构建过程中所使用的build.xml文件。该文件定义了构建任务和操作,是Ant构建工具的重要组成部分。 ### 回答3: Ant是一种软件构建工具,它可以自动化地构建软件项目。该工具可以读取一个XML文件(通常命名为build.xml),其中包含了构建项目所需要的配置信息和任务指令,从而生成可执行的软件。 在使用Ant构建项目时,我们可以通过指定build.xml文件来告诉Ant该如何构建项目。具体来说,可以在命令行中使用ant命令,并指定-buildfile选项来指定build.xml文件的路径。例如,假设build.xml文件位于当前工作目录下,我们可以使用以下命令来启动Ant构建: ant -buildfile build.xml 在执行此命令后,Ant会读取build.xml文件,并按照文件中所包含的指令和配置信息来构建项目。通过指定build.xml文件,我们可以非常方便地掌控构建过程,并定制所需要的构建操作,从而满足项目的特定需求。 总之,Ant通过读取并解析build.xml文件来构建软件项目,因此我们可以通过指定build.xml文件来指导Ant工具如何构建项目。这一过程十分简单,只需要在命令行中加入-buildfile选项并指定正确的文件路径即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值