任务和javac命令是相似,它编译两种类型的java文件1)没有被编译的java文件2)曾经编译过,但是class文件版本和当前对应的java文件版本不匹配的java文件。

1)javac命令支持的参数:

Attributes Description

srcdir :必须的,除非嵌套有标签。包含源文件的文件夹

bootclasspath:编译过程中需要导入class文件会被导入

bootclasspathref:编译过程中需要引用的class文件夹目录

classpath:The class path to use. 文件夹中class会被导入的jar包

classpathref:文件夹中class文件会被引用的jar包

compiler :指定要使用的编译器。如果未设置该特性,将使用 build.compiler 属性的值(如果设置)。否则,将使用当前 VM 的默认编译器。

例子:设置环境变量 JIKESHOME 为 jikes 的路径

设置 ANT_OPTS=-Dbuild.compiler=jikes

将 jikes 路径添加到系统 PATH 中

然后在所有的ant任务就默认使用 jikes 了, 如果你想在单个工程中使用 ant, 就不要添加 ANT_OPTS 环境变量, 只需要修改 build.xml 中 javac 标签中的 compiler 为 jikes

debug: 当值未为true时产生调试信息

debuglevel: 相当于命令行中要追加到 -g 命令行开关后面的关键字列表。这将会被除 modern 和 classic(ver >= 1.2) 以外的所有实现忽略。合法值是 none 或下列关键字的逗号分隔列表:lines、vars 和 source。如果不指定 debuglevel,则默认情况下,将不会在 -g 的后面追加任何关键字。如果不打开 debug,该特性将被忽略。

depend: 这个任务依赖的任务。当运行这个任务时,首先按照顺序依次执行完依赖的任务,如果出错将停止执行

deprecation: 假如为真,将会给出不建议使用的API,默认值false

destdir: 编译后文件存放的目标文件夹,默认是当前文件夹。

encoding:指定编码格式

excludes :必须排除的文件模式的列表,以逗号或空格分隔。如果忽略,将不会排除任何文件(默认排除的文件除外)。

excludesfile: 该文件的每一行都将作为一个 exclude 模式。

extdirs: Specifies an alternative location of installed extensions that overrides the default.

failonerror: 指定 clientgen Ant 任务在出现错误的情况下是否继续执行。 此特性的有效值为 True 或 False。默认值为 True,这意味着即使遇到错误也要继续执行。

fork: 为true时在外部启用一个新的JDK 编译器进程执行编译。默认值是true,应用在需要配置编译器运行时环境时

includeantruntime :指出是否应在类路径中包括 Ant 运行时程序库,默认为 yes。

includejavaruntime: 指出是否应在类路径中包括来自执行 VM 的默认运行时程序库,默认为 no。

includes: 必须包括的文件模式的列表,以逗号或空格分隔。如果忽略,将包括所有文件。

includesfile: 文件名。该文件的每一行都将作为一个 include 模式。

listfiles: 为真时显示被编译文件列表,默认为false

memoryinitialsize 如果 javac 在外部运行,则是底层 VM 的初始内存大小;否则将被忽略。默认为标准 VM 内存设置。(例如:83886080、81920k 或 80m)

memorymaximumsize: 如果 javac 在外部运行,则是底层 VM 的最大内存大小;否则将被忽略。默认为标准 VM 内存设置。(例如:83886080、81920k 或 80m)

nowarn: 为真时将忽略所有警告信息

optimize: 指出是否应该用优化方式编译源代码,默认为 off。

source: 假如设置为1.4,将激活断言。默认是1.3

sourcepath: 指定源资源文件夹。默认指向srcdir

sourcepathref: 指定你想引用资源

target: Specifies the VM version to generate class files for (for example, 1.1 or 1.3).

verbose: 控制生成消息的输出量。

2)compilerarg设置命令行参数:file,line,path,value.其中value直接指定编译参数,如-g。file,line,path没搜到示例,自己试验几个都不行,会的请点拨下,不盛感激!

<?xml version = "1.0" encoding = "utf-8" ?>

<!-- basedir:代表基路径(基路径一般以build.xml的当前路径为准,否则在调用reStart时,可能报错:找不到build.xml文件) -->
<project name = "testAnt" default = "start" basedir = ".">
<property name = "class.Package" value = "classes"/>
<property name = "src.dir" value = "com/ant"/>
<property name = "jar.package" value = "output"/>
<property name = "jar.name" value = "testAnt.jar"/>
<property name = "class.name" value = "com.ant.TestAnt"/> <!-- 避免出现:[java] Could not find com.ant.TestAnt. Make sure you have it in your classpath:没有配置ant环境的话,直接在xml中配置path的pathelement属性:值为class的包路径 -->
<path id="classPath">
<pathelement path="${class.Package}"/>
</path> <!-- 创建包 -->
<target name = "init">
<mkdir dir = "${class.Package}"/>
<mkdir dir = "${jar.package}"/>
</target>
<!-- 编译成class文件 ,destdir:将class文件放在那里,includeantruntime="on":可避免出现warning: 'includeantruntime' was not set-->
<target name = "complie" depends = "init">
<javac srcdir = "${src.dir}" destdir = "${class.Package}" includeantruntime="on" />
</target>
<!-- 将class文件打成jar包 ,destfile:将jar放在那里+jar包的名字,basedir:根据哪里的目录的class而打成jar包-->
<target name = "jar" depends = "complie">
<jar destfile = "${jar.package}/${jar.name}" basedir = "${class.Package}"/>
</target>
<!-- 根据class文件,运行代码 -->
<target name = "start" depends = "jar">
<java classname = "${class.name}" classpathref = "classPath"/> <!-- classpath = "${class.Package}" -->
</target>
<!-- 删除文件:jar包+classes目录 ,dir:要删除的包名即目录名,file:要删除的jar包名-->
<target name = "clean" >
<delete dir = "${class.Package}"/>
<delete file = "${jar.package}/${jar.name}"/>
</target>
<!-- 同时运行多个target -->
<target name = "reStart"> <!-- depends = "clean,start" -->
<ant target = "clean"/>
<ant target = "start"/>
</target>
</project>

ant 节点和属性的更多相关文章

  1. js创建节点及其属性

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. 初探JavaScript(一)——也谈元素节点、属性节点、文本节点

    Javascript大行其道的时候,怎么能少了我来凑凑热闹^_^ 基本上自己对于js的知识储备很少,先前有用过JQuery实现一些简单功能,要论起JS的前世今生,来龙去脉,我就一小白.抱起一本< ...

  3. HTMLDOM中三种元素节点、属性节点、文本节点的测试案例

    HTML dom中常用的三种节点分别是元素节点.属性节点.文本节点. 具体指的内容可参考下图: 以下为测试用例: <!DOCTYPE html> <html> <head ...

  4. 用mel编写自定义节点的属性编辑器界面

    用mel编写自定义节点的属性编辑器界面比较麻烦,而且网上例子又少,下面给出一个范例,说明基本的格式 // 初始化节点时调用 global proc initControl(string $attrNa ...

  5. javascript_获取iframe框架中元素节点的属性值

    1. DOM:文档对象模型 [window 对象] 它是一个顶层对象,而不是另一个对象的属性即浏览器的窗口. [document 对象] 该对象是window和frames对象的一个属性,是显示于窗口 ...

  6. DOM中元素节点、属性节点、文本节点

    DOM中有12中节点,但最常用到的是元素节点,属性节点,文本节点. 元素节点的节点类型(nodeType)是1: 属性节点的节点类型(nodeType)是2: 文本节点的节点类型(nodeType)是 ...

  7. DOM中元素节点、属性节点、文本节点的理解

    DOM中元素节点.属性节点.文本节点的理解 节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是:nodeName(节点名称) nodeValue(节点值) nodeType(节点类型)  ...

  8. Ant 脚本打印系统属性变量、ant内置属性

    Ant 脚本打印系统属性变量.ant内置属性 作用 编写ant脚本的时候,经常会引用到系统属性,本脚本用于打印系统常用属性(System.getProperties)与环境变量(Environment ...

  9. jacascript DOM节点——元素节点、属性节点、文本节点

    前言:这是笔者学习之后自己的理解与整理.如果有错误或者疑问的地方,请大家指正,我会持续更新! DOM节点的三个种类:元素节点.文本节点.属性节点: 元素节点 元素节点就是 HTML 标签元素,元素节点 ...

随机推荐

  1. C++2.0新特性(四)——<decltype、lambda>

    一.关键字decltype 引入新关键字decltype可以让编译器找出表达式的类型,为了区别typeof,以下做一个概念区分: typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型 ...

  2. [代码审计]php反序列化漏洞

    0x01 php面向对象简介 对象:可以对其做事情的一些东西.一个对象有状态.行为和标识三种属性. 类:一个共享相同结构和行为的对象的集合. 每个类的定义都以关键字class开头,后面跟着类的名字. ...

  3. BAT文件语法和技巧(bat文件的编写及使用)

    比较有用的东西 首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(no ...

  4. scala_基础

     笔记前言:本笔记为scala的入门基础和scala基础使用.主要参考为书籍和推荐较高的博客.主要目的为供个人总结学习. 所有来自网络参考内容不一一列出. 一.面向过程 1.变量体 val 标识符:声 ...

  5. python编译exe后在windows2003上报错

    最近使用python写了一个分析nmon结果的小程序,用的是python3.8.win7环境,pyinstaller生成exe后,在win7上运行一切正常.拿到内网分享给团队成员,在windows20 ...

  6. 转 python多个命令同时执行.sh

    1.背景是 有三个脚本a.py, b.py, c.py 三个都是爬虫,里面都是while(true)方式运行的,不会主动运行结束. 每次启动他们,就需要: python a.py > logs/ ...

  7. php 502 无错误行和报错文件的情况下使用gdb调试方法

    lnmp环境 gdb  /usr/local/php5.2/bin/php-cgi  /tmp/coredump-php-cgi.20503 source /home/tmp/lnmp1.4-full ...

  8. CentOs7设置主机名称,以及主机名称和ip的对应关系

    一.修改主机名称 在CentOS7中有三种定义的主机名:静态的(static).瞬态的(transient).和灵活的(pretty).静态主机名也称为内核主机名,是系统在启动时从/etc/hostn ...

  9. html常用标签详解

    html常用标签详解 一.总结 一句话总结: 这些资料没必要自己总结,可以直接网上找,简单方便,再根据需求改一下 二.HTML常用标签详解 转自或参考:HTML常用标签详解https://blog.c ...

  10. 【转】python requests库添加自定义cookie的方法

    requests库是个很方便的爬虫,相关文档已经很详细了.不过我今天在爬网页时,有一个网站是在脚本中添加cookie的,但我向requests.cookies里添加cookie费了不少周折.尝试了多个 ...