ant 节点和属性

任务和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>

转载于:https://www.cnblogs.com/kai-kai/p/11546123.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值