这一篇主要介绍与java相关标签的使用
终于开始重头戏了,Java部分是我们关注的重点也是项目中用处最多的部分。
1.<javac>
编译java源文件成class文件。
编译java源文件成class文件。
<javac srcdir="${src}" destdir="${dest}" encoding="utf-8" bootclasspathref="project.classpath" includejavaruntime="true" includeantruntime="false" optimize="true" source="1.6" target="1.6"/>
(1). srcdir:java源文件的文件夹,也可以在内部嵌套<src>标签
(2). destdir:用于存放编译后class文件的文件夹,默认是当前文件夹。
(3). includes:必须包括的文件模式的列表,以逗号或空格分隔。如果忽略,将包括所有文件。
(4). includesfile:指定一个包含很多include的文件,同样可以用通配符来指定。
(5). excludes:必须排除的文件模式的列表,以逗号或空格分隔。如果忽略,将不排除任何文件。
(6). excludesfile:指定一个包含很多exclude的文件,同样可以用通配符来指定。
(7). classpath: 编译所使用的classpath
(8). sourcepath: 指定源资源文件夹。默认指向srcdir
(9). bootclasspath: 启动时设置classpath
(10). classpathref: 引用其他classpath
(11). sourcepathref:引用其他源文件目录
(12). bootclasspathref: 启动时引用其他classpath设置
(13). extdirs:扩展文件的路径。
(14). encoding:编码格式
(15). nowarn:忽略警告信息
(16). debug: 是否产生调试信息,默认off。
(17). debuglevel:debug级别
(18). optimize: 指出是否应该用优化方式编译源代码,默认为 off。
(19). deprecation:是否给出不建议使用的API,默认值false。
(20). target: 根据特定的vm版本生成class文件
(21). verbose:要求编译器输出详细信息,默认no。
(22). depend: 当运行这个任务时,首先按照顺序依次执行完依赖的任务,如果出错将停止执行。
(23. includeAntRuntime:指出是否应在类路径中包括 Ant 运行时程序库,默认为 yes。
(24). includeJavaRuntime: 指出是否应在类路径中包括来自执行 VM 的默认运行时程序库,默认为 no。
(25). fork:是否执行外部的javac,默认no。
(26). executable:当fork="yes"时,所执行的javac的完整路径。默认的是当前跑ant的java版本,fork="no"就忽略
(27). memoryInitialSize:当是外部javac的时候,获得基本vm的初始内存大小。否则忽略。
(28). memoryMaximumSize: 同上只不过是获得最大的内存大小。
(29). failonerror: Ant 任务在出现编译错误的情况下是否继续执行,默认值为 True。
(30). errorProperty:当编译失败的时候要设置的属性。
(31). source:命令行-source的开关。 假如设置为1.4,将激活断言。默认是1.3。默认不使用-source。
(32). compiler:设置用来选择编译器,如果不设置,将使用默认的编译器。
(33). listfiles:是否显示被编译文件列表,默认是no。
(34). tempdir:指定存放临时文件的地方,这个只在设置了fork和命令行超过参数长度超过4k的时候使用,默认为java.io.tmpdir
(35). updatedProperty:更新property属性
(36). includeDestClasses:是否包含目标class文件夹包含到classpath。默认是true。意思是之前生成的class文件自动加到classpath。
(2). destdir:用于存放编译后class文件的文件夹,默认是当前文件夹。
(3). includes:必须包括的文件模式的列表,以逗号或空格分隔。如果忽略,将包括所有文件。
(4). includesfile:指定一个包含很多include的文件,同样可以用通配符来指定。
(5). excludes:必须排除的文件模式的列表,以逗号或空格分隔。如果忽略,将不排除任何文件。
(6). excludesfile:指定一个包含很多exclude的文件,同样可以用通配符来指定。
(7). classpath: 编译所使用的classpath
(8). sourcepath: 指定源资源文件夹。默认指向srcdir
(9). bootclasspath: 启动时设置classpath
(10). classpathref: 引用其他classpath
(11). sourcepathref:引用其他源文件目录
(12). bootclasspathref: 启动时引用其他classpath设置
(13). extdirs:扩展文件的路径。
(14). encoding:编码格式
(15). nowarn:忽略警告信息
(16). debug: 是否产生调试信息,默认off。
(17). debuglevel:debug级别
(18). optimize: 指出是否应该用优化方式编译源代码,默认为 off。
(19). deprecation:是否给出不建议使用的API,默认值false。
(20). target: 根据特定的vm版本生成class文件
(21). verbose:要求编译器输出详细信息,默认no。
(22). depend: 当运行这个任务时,首先按照顺序依次执行完依赖的任务,如果出错将停止执行。
(23. includeAntRuntime:指出是否应在类路径中包括 Ant 运行时程序库,默认为 yes。
(24). includeJavaRuntime: 指出是否应在类路径中包括来自执行 VM 的默认运行时程序库,默认为 no。
(25). fork:是否执行外部的javac,默认no。
(26). executable:当fork="yes"时,所执行的javac的完整路径。默认的是当前跑ant的java版本,fork="no"就忽略
(27). memoryInitialSize:当是外部javac的时候,获得基本vm的初始内存大小。否则忽略。
(28). memoryMaximumSize: 同上只不过是获得最大的内存大小。
(29). failonerror: Ant 任务在出现编译错误的情况下是否继续执行,默认值为 True。
(30). errorProperty:当编译失败的时候要设置的属性。
(31). source:命令行-source的开关。 假如设置为1.4,将激活断言。默认是1.3。默认不使用-source。
(32). compiler:设置用来选择编译器,如果不设置,将使用默认的编译器。
(33). listfiles:是否显示被编译文件列表,默认是no。
(34). tempdir:指定存放临时文件的地方,这个只在设置了fork和命令行超过参数长度超过4k的时候使用,默认为java.io.tmpdir
(35). updatedProperty:更新property属性
(36). includeDestClasses:是否包含目标class文件夹包含到classpath。默认是true。意思是之前生成的class文件自动加到classpath。
下面是一些实例:
1). 将${src}下的java文件编译到${dest}中,classpath中包括log4j.jar包,并显示调试信息,source是1.6
2). 将${src}下的java文件编译到${dest}中,使用外部的javac。source的等级是1.6,并且class文件是根据jdk1.6版本生成
3). 此例同上,只是使用fork指定executable的javac名称为 java$javac.exe
4). 将${src}下的java文件编译到${dest}中,且只包含package下的java文件,并排除test下的所有文件
5). 指定javac程序编译源文件,javac文件位置:/usr/local/java/jdk/bin/javac
6). 使用指定的CompilerAdapter
1). 将${src}下的java文件编译到${dest}中,classpath中包括log4j.jar包,并显示调试信息,source是1.6
<javac srcdir="${src}" destdir="${dest}" classpath="log4j.jar" debug="on" source="1.6" target="1.6" />
2). 将${src}下的java文件编译到${dest}中,使用外部的javac。source的等级是1.6,并且class文件是根据jdk1.6版本生成
<javac srcdir="${src}" destdir="${dest}" fork="true" source="1.6" target="1.6" />
3). 此例同上,只是使用fork指定executable的javac名称为 java$javac.exe
<javac srcdir="${src}" destdir="${dest}" fork="java$$javac.exe" source="1.6" target="1.6" />
4). 将${src}下的java文件编译到${dest}中,且只包含package下的java文件,并排除test下的所有文件
<javac srcdir="${src}" destdir="${dest}" includes="package/**" excludes="package/test/**" classpath="log4j.jar" />
5). 指定javac程序编译源文件,javac文件位置:/usr/local/java/jdk/bin/javac
<javac srcdir="${src}" destdir="${dest}" fork="true" executable="/usr/local/java/jdk/bin/javac" compiler="javac1.1" />
6). 使用指定的CompilerAdapter
<javac srcdir="${src}" destdir="${dest}" compiler="com.myproject.MyAdapter"/> 或 <componentdef classname="com.myproject.MyAdapter" name="myadapter" /> <javac srcdir="${src}" destdir="${dest}"> <myadapter/> </javac>
2.<java>
用来运行编译好的class文件,命令比较简单,结合javac的属性解释一看就懂了。
<java timeout="30" args="1,2,3" classname="com.test.ant.HelloAnt" classpath="${classPath}" />java既可以运行class文件又可以运行jar文件,只需要做相应配置即可:
<java classname="com.ant.hello.HelloAnt" classpath="${hello_jar}" /> <java classname="test.Main"> <arg value="-h" /> </java>
3.<jar>
(1)打包成jar文件,jar命令是我们经常要使用的,我们会将项目打包成相应的jar包分发到各系统上。
1.<jar jarfile="${hello_jar}" basedir="${dest}" /> 2.<jar destfile="${dist}/hello.jar" basedir="${dest}" includes="com/test/ant/**" excludes="**/*_Temp.class" />
(2)打包成可运行jar文件,即指定该jar文件的main函数。
1.<jar destfile="${dist}/hello.jar" basedir="${dest}" manifest="${dir}/MANIFEST.MF"/> 2.<jar destfile="${dist}/hello.jar" filesetmanifest="mergewithoutmain"> <manifest> <attribute name="Built-By" value="${user.name}"/> <attribute name="Main-Class" value="com.ant.hello.HelloAnt"/> <attribute name="Class-Path" value="."/> </manifest> <fileset dir="${dest}"/> </jar>方式1中需要在dir目录下新建一个MANIFEST.MF文件,在默认打包时未设置manifest属性的话系统会自动添加。
方式2中将属性直接赋在attribute 中,这样编译时会自动生成指定内容的MANIFEST.MF文件。
Manifest-Version: 1.0 Class-Path: lib/slf4j-log4j.jar lib/slf4j-api-1.5.10.jar lib/log4j.jar Main-Class: com.ant.hello.HelloAnt
4.<war>
打成war包:
<war compress="true" destfile="ROOT.war" webxml="${web}/WEB-INF/web.xml"> <zipfileset dir="${web}"> <include name="**/*.jsp" /> <include name="**/*.html" /> <include name="**/*.css" /> <include name="**/*.js" /> <include name="**/*.properties" /> <include name="**/*.xml" /> <include name="**/*.xsl" /> <include name="**/*.gif" /> <include name="**/*.png" /> <include name="**/*.jpg" /> <include name="**/*.jpeg" /> <include name="**/*.wbmp" /> <include name="**/*.swf" /> <include name="WEB-INF/*.tld" /> </zipfileset> <lib dir="${dest}"> <include name="lib1.jar" /> </lib> <lib dir="${dest}"> <include name="lib2.jar" /> </lib> </war>
5.<javadoc>
为我们的代码构建JavaDoc文档。
<javadoc charset="" destdir="" stylesheetfile="" source="" > <doclet> <param/> </doclet> </javadoc>
6.发布程序
其实是一系列的动作:建立目录-->编译-->打包-->移动-->启动服务器。具体业务流程还需要具体分析,只要Ant的各种命令参数运用的合理,我们可以轻松构建任何应用。
相关推荐
【ANT-build.xml文件详解】 ANT-build.xml文件是Apache Ant构建工具的核心配置文件,它使用XML格式定义了构建项目的所有步骤和任务。Ant是Java社区广泛使用的自动化构建工具,它的主要优势在于跨平台性、易用性和...
### ANT文件详解:深入理解ANT及其在项目构建中的应用 #### Ant的概念与起源 Ant,全称为Apache Ant,是一款开源的、跨平台的项目构建工具,最初由James Duncan Davidson开发,现归属于Apache软件基金会Jakarta...
《Ant4Hg工具详解与应用》 Ant4Hg,全称为Apache Ant for Mercurial,是一款将Mercurial版本控制系统与Apache Ant构建工具相结合的扩展库,它允许开发者在Ant构建脚本中直接集成Mercurial的操作,如提交、更新、...
### ant标签详解 #### 1. `<project>` 标签 `<project>` 标签是构建文件的基础,每一个构建文件都有一个对应的项目,并且此标签作为构建文件的根节点。`<project>` 标签支持多种属性: - **default**:指定构建...
《Ant Contrib库详解与应用》 Ant Contrib是一个扩展Apache Ant构建工具功能的库,它提供了一系列自定义的任务和条件,使得在Java项目构建过程中能够执行更复杂的操作。Ant Contrib库的核心在于其jar文件,即"ant-...
### ANT-build.xml 文件详解 #### Ant 的概念及与 Make 的比较 Ant 是一款开源的 Java 构建工具,它的设计理念主要是解决 Make 工具在跨平台应用中存在的问题。对于熟悉 Linux 的用户而言,Make 命令作为一种项目...
Ant是Apache软件基金会下的一个Java项目,它是一个构建工具,主要用于自动化Java应用程序的构建过程,如编译、打包、测试和部署等。Ant基于XML,它的配置文件(通常命名为build.xml)描述了构建过程的各个步骤,使得...
### 经典Ant笔记知识点详解 #### 一、Ant简介及功能 - **定义与作用:** - Ant是一款开源的Java平台上的自动化构建工具,主要用于简化软件项目的构建过程,支持多种任务,如编译Java源代码、运行Java程序、复制...
Ant build.xml 文件详解 Ant 是一个项目管理工具,相比make命令,gnumake和nmake等编译工具,Ant克服了这些工具的缺陷。Ant 的优点包括跨平台性、操作简单、易于集成到开发环境中。Ant 的构建文件是 XML 格式的文件...
根据提供的文件信息,这里将深入解析“ant学习笔记:一个简单的java编译部署实例”,涵盖标题、描述、标签以及部分内容中提及的关键知识点。 ### Apache Ant简介 Apache Ant是一款开源的Java环境下的自动化构建...
Apache Ant 是一个由Java编写的构建工具,它主要用于自动化Java项目的构建、编译、测试和部署过程。在Ant中,核心的配置文件是`build.xml`,它定义了项目构建的整个流程。本文将深入解析Ant配置文件的各个方面,帮助...
《Ant独立应用程序详解》 Ant,作为Java世界中的一款强大构建工具,自1998年由Jakarta项目推出以来,已经在软件开发领域扮演了至关重要的角色。Ant以其XML为基础的构建文件,简单灵活的配置,以及对Java项目的全面...
Apache Ant 是一个Java环境下的开源项目构建工具,主要用于自动化构建、部署等任务。它使用XML来描述构建过程,并且提供了丰富的任务(task)集合,能够简化项目构建流程。Ant的核心优势在于它的跨平台特性、丰富的...
Ant 是一款强大的自动化构建工具,主要用来管理Java项目的构建过程,类似于Linux中的make命令。然而,Ant克服了类似makefile工具的一些局限性,提供了跨平台的解决方案,使得开发者可以在不同的操作系统上进行项目...
- **Ant简介**:Ant是一个开源的Java构建工具,它能够将软件开发中的各种任务(如编译、测试、部署)自动化,大大简化了开发过程。Ant通过读取XML格式的构建文件(通常是`build.xml`)来执行一系列预定义的任务。 -...
相较于传统的Make命令工具,Ant的设计更加现代化,它克服了许多传统构建工具中存在的问题。Ant采用了XML作为配置文件的语言基础,这不仅使得其配置更为直观且易于维护,同时也极大地增强了其跨平台的能力。 #### 二...
【Ant 知识点详解】 Ant 是一个基于 Java 的构建工具,主要负责自动化软件构建过程,如编译、打包、测试等。它起源于开发者对于传统构建工具(如 make、nmake、jam)在跨平台性和灵活性上的不满。Ant 的设计理念是...