`
liyixing1
  • 浏览: 941790 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

target目标与任务

Ant 
阅读更多
运行ant没有带参数的情况下,会读取project元素,并使用default属性来作为目标执行。

ant所有任务都支持的三个属性:
id,一个任务实例的唯一标识。与Reference类型一同使用。
taskname,任务实例名,将显示在日志中。
description,任务的注释。

<project>和<target>元素都不是任务。

project元素
属性
basedir基目录,工程中的所有相对路径都是基于该值。默认是构件文件所在目录。如果此属性未指定,则可以在调用 ant的时候加上特性 ant -Dbasedir=目录 target(要调用的目标名)

default必须,指定一个目标,如果ant命令未带上目标,则默认执行这个目标。

name项目的名字。用于建立文档。在ant -projecthelp时也会显示这个名字。

它可以嵌套子元素:
0-N个description为工程建立一个描述。在ant -projecthelp的时候会显示这个描述。
0-N个filelist元素 定义工程范围的filelist
0-N个fileset元素 定义工程范围的fileset
0-N个filterset元素 定义工程范围的filterset
0-N个mapper元素
0-N个path元素
0-N个property元素
1-N个target元素
0-N个taskdef元素


target元素
属性
depends此目标的依赖目标,用逗号分割。列出的目标会在此目标前执行。
description目标的描述。
if指定一个特性名,只有在设置了特性才会执行。
name必须,目标的名字
unless指定一个特性名,未设置特性,才执行。

目标可以包含DataType和任务。

ant任务
ant任务会基于另一个构件文件的一个目标调用ant。可以为工程定义多个构件文件。不同的ant版本,工程间调用时,特性的传递方式也不同。1.1版本,新工程可以见到调用工程的特性。如果两个工程都定义同一个特性,那么调用工程的特性优先。

属性:
antfile要调用的构件文件名字,默认是build.xml
dir新工程的基目录。antfile属性会相对这个目录来寻找。默认是当前目录。
inheritall控制特性如何由当前工程传递到新工程。默认是true。表示当前工程的特性在新工程可用。false,当前工程定义的特性不会传递到新工程,除非他们在ant命令行定义(这时候是用户特性,而不是构件特性了)。
output文件名,输出会写至这个文件。
target新工程要调用的文件名。如果忽略,会调用新工程的默认目标
可以嵌套
0-N个property元素,将一个特性传递到新工程
<ant antfile="email/build.xml">
  <property name="test" value="test_value" />
</ant>

antcall任务
调用当前构件文件的一个目标
通过使用嵌套<param>元素将特性传递到新目标。antcall会使用当前构件文件,并新建一个实例,然后才调用这个目标。
属性:
inheritall和ant类似
target必须,要调用的目标

嵌套0-N个param元素
将一个特性传递给新的构件过程。param元素和property类似。属性也相同。

antstructure任务
为ant创建一个xml dtd。它使用java反射为所有任务确定可允许的属性和内容。因为ant任务并未指出所需要的属性,所以生成的DTD属性是#IMPLIED(表示可选)
属性
output必须,生成的DTD文件的文件名

apply任务
执行一个系统命令。execon任务已经被废除。与exec任务不同,此任务需要嵌套fileset来指定一个或多个文件和目录作为命令的参数
属性
dest由命令所生成的任何目标文件的目标目录。
dir命令的工作目录
executable必须,要执行的命令名,不包括命令参数
failonerror如果为true,若命令返回非0值,则构件失败。默认是false
newenvironment,如果是true,则不将现有环境变量传递至新过程。默认是false
os此任务可应用的操作系统列表,它会System.getProperty("os.name")来获取系统,并与之比较。在列表中了才会执行
output一个文件,命令输出既要重定向到这个文件
outputproperty存储命令输出的特性的名字
parallel如果为true,则命令仅执行一次,将所有文件传递为参数。如果为false,此命令为各个文件分别执行依次。默认是false。
skipemptyfilesets如果为true,当未找到源文件,或者源文件比目标文件新,则不执行命令。默认是false。
timeout终止命令之前所等待的豪秒数,如果未指定,无限期等待。
type确定无格式文件或目标的名字是否发送至命令。可允许的值可以是file,dir或both。默认是file
vmlauncher指定是否试图使用jvm的内置命令启动程序,而不是一个antRUN脚本,默认是true。
如果指定了一个嵌套的<mapper>元素,dest就必须。

可以嵌套子元素
0-N个arg元素,命令行参数
0-N个env元素,指定环境变量
0-N个fileset元素,指定哪些文件和目录要作为参数传递至命令。除非指定了srcfile元素,否则文件将追加到命令行末尾。
0-N个mapper元素,如果定义,则将目标文件的时间戳和源文件时间戳比较。
0-N个srcfile元素,如果存在,则对由fileset元素指定的文件要置于命令行何处加以控制。srcfile没有任何属性。需要置于合适的arg元素之间。
0-N个targetfile元素,此元素仅在apply元素设置了一个mapper元素和destdir属性才可用。没有任何属性。用于标记命令行上目标文件的位置。和srcfile元素相同。
<?xml version="1.0" encoding="utf-8"?>
<project name="DataType 测试" default="run" basedir=".">
<filelist id="needFiles" dir="." files="1.txt, 2.txt, 3.txt" />
<filelist id="moreFiles" dir="." files="4.txt" />
<target name="run">
<tstamp>
<format property="starttime" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>
<echo message="开始时间:${starttime}" />

<apply executable="dir" vmlauncher="false">
<fileset dir=".">
<include name="build.xml" />
</fileset>
</apply>

<tstamp>
<format property="endtime" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>
<echo message="结束时间:${endtime}" />
</target>
</project>
结果
D:\source\liyixing\ant>ant
Buildfile: D:\source\liyixing\ant\build.xml

run:
     [echo] 开始时间:2011-05-16 11:27:00
    [apply]  驱动器 D 中的卷是 IT
    [apply]  卷的序列号是 D0EA-6307
    [apply]
    [apply]  D:\source\liyixing\ant 的目录
    [apply]
    [apply] 2011-05-16  11:26             2,205 build.xml
    [apply]                1 个文件          2,205 字节
    [apply]                0 个目录 92,811,255,808 可用字节
     [echo] 结束时间:2011-05-16 11:27:01

BUILD SUCCESSFUL
Total time: 0 seconds

加上output属性,output="a.txt"结果
D:\source\liyixing\ant>ant
Buildfile: D:\source\liyixing\ant\build.xml

run:
     [echo] 开始时间:2011-05-16 11:30:36
     [echo] 结束时间:2011-05-16 11:30:36

BUILD SUCCESSFUL
Total time: 0 seconds

dir命令的结果打印在了a.txt。打开a.txt可以看到结果。

available
available如果某资源可用,则有条件的设置一个特性。资源可以是一个类,文件,目录或者java系统资源。如果资源存在,此特性设置为true,或者设置为value属性设置的值。否则不设置特性。
部分任务不列出。

fail抛出一个异常(BuildException)并终止当前构建。message指定执行此任务时显示的消息。
属性
message要显示的消息。

jar
创建一个jar文件
属性
basedir 要增加到jar文件中的文件的基目录
compress 如果为true,则解压jar文件。默认是true
defaultexcludes 是否使用默认排除模式。默认是true
encoding 指定jar文件的文件名编码默认是utf-8.
excludes要排除的文件模式列表。逗号分隔
excludesfile 每行一个要排除的列表
includes 要包含的文件模式列表,逗号分隔
includesfile 每行包括一个要包含的文件模式。
jarfile 要创建的jar文件的文件名
manifest 清单文件的文件名。如果没有指定的话,ant会生成一个新的清单,里面会添加ant的版本号。
update如果为true,则发生修改时更新现有jar文件。而不是重新生成。
whenempty未找到输入文件的错做。默认是create。合法值是 fail 终止构建。 skip不创建jar文件 create创建一个空的jar文件。
可以嵌套
0-N个attribute元素。每个元素都是一个键值对。对于清单文件中未命名的段中。清单中各段使用空行分隔。使用section创建清单段。
属性:
name属性名
value属性值
0-N个patternset元素(exclude,incude,patternset,excludesfile,includesfile)代替其属性。

0-N个fileset元素,指定包括在jar文件中的文件和目录。
0-N个metainf元素,定义一个fileset,其中包含要放到jar的META-INF目录下面的文件。如果set中有MANIFEST.MF文件,那么会把这个文件和jar中的MANIFEST.MF合并。
0-N个section元素,每个元素定义一个清单段。每个section可以包含attribute。
属性:
name,段明。
0-N个zipfileset。

<?xml version="1.0" encoding="utf-8"?>
<project name="DataType 测试" default="run" basedir=".">
<filelist id="needFiles" dir="." files="1.txt, 2.txt, 3.txt" />
<filelist id="moreFiles" dir="." files="4.txt" />
<target name="run">
<tstamp>
<format property="starttime" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>
<echo message="开始时间:${starttime}" />

<jar jarfile="build/test.jar" basedir="src" includes="**/*.java">
<manifest>
<attribute name="Version" value="3.2" />

<section name="test1">
<attribute name="test1-1" value="test1-1" />
</section>

<section name="test2">
<attribute name="os" value="windows" />
</section>
</manifest>
</jar>

<tstamp>
<format property="endtime" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>
<echo message="结束时间:${endtime}" />
</target>
</project>
生成的jar的清单文件内容
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.2
Created-By: 1.6.0_22-b04 (Sun Microsystems Inc.)
Version: 3.2

Name: test1
test1-1: test1-1

Name: test2
os: windows


java
指定一个java类
使用ant的vm或者创建一个新的vm来执行java类。
如果代码中有System.exit(),要确保fork=true,否则ant也会退出。
属性
args,弃用,使用args元素
classname,执行的java类
classpath要使用的类路径。除非fork=true,否则会添加到ant的类路径。
classpathref 应用构建文件定义的类路径。
dir vm的工作目录。fork=true的时候,它才有效。
failonerror,如果未true,则当命令返回0值时构建失败。默认是false,fork=true的时候,它才有效。
fork 为true的时候,创建一个新的VM实例。默认false。
jar要执行的一个可执行jar文件的文件名。此jar文件必须包括一个Main-Class的清单项。而且fork必须是true。
jvm java解释器的命令名。默认是java。fork必须是true。
jvmargs,弃用使用jvmarg元素。
maxmemory 为新创建的vm分配最大内存量。fork=true才有用。
output 一个文件名,输出写到这里
classname或jar二者必选其中一个。
嵌套
0-N个arg或者jvmarg元素
指定应用的参数和虚拟机的参数。
0-N个sysproperty指定系统特性
0-N个classpath用path元素来代替classpath或者classpathref属性。
<?xml version="1.0" encoding="utf-8"?>
<project name="DataType 测试" default="run" basedir=".">
<filelist id="needFiles" dir="." files="1.txt, 2.txt, 3.txt" />
<filelist id="moreFiles" dir="." files="4.txt" />
<target name="run">
<tstamp>
<format property="starttime" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>
<echo message="开始时间:${starttime}" />

<java classname="test.Test">
<arg value="123" />
<classpath>
<pathelement path="build" />
</classpath>
</java>

<tstamp>
<format property="endtime" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>
<echo message="结束时间:${endtime}" />
</target>
</project>

<?xml version="1.0" encoding="utf-8"?>
<project name="DataType 测试" default="run" basedir=".">
<filelist id="needFiles" dir="." files="1.txt, 2.txt, 3.txt" />
<filelist id="moreFiles" dir="." files="4.txt" />

<path id="test.classpath">
<pathelement path="build/test.jar" />
<pathelement path="build/1.jar" />
</path>

<target name="run">
<tstamp>
<format property="starttime" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>
<echo message="开始时间:${starttime}" />

<java classname="test.Test">
<arg value="123" />
<classpath refid="test.classpath" />
</java>

<tstamp>
<format property="endtime" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>
<echo message="结束时间:${endtime}" />
</target>
</project>
应用其他地方定义的path

javac任务
编译,将java文件和class文件比较。如果不存在文件或者源文件比其相应的类文件更新,才会进行编译。依赖关系,ant无法发现。如父类A修改了,而子类B继承父类A,B未修改,ant只重新编译A,而不会重新编译B。会出现特殊问题。
支持多种编译器。
JDK1.1-12编译器是classic
JDK1.3/1.4是modern。
IBM Jikes编译器 jikes
Microsoft的javaSDK编译器 jvc
kopi编译器kjc
gcc的gcj编译器 gcj
Symantec编译器 sj
在其自己的JVM中运行modern或classic extJavac
属性
bootclasspath 要启动的bootstrap类路径。
bootclasspathref应用某处定义的类路径。
classpath要使用的类路径。如果fork不是true的情况下,会把它添加到ant的类路径。
classpathref 应用某处的类路径。
debug 如果是true,编译源代码会有调试信息。默认false
defaultexcludes 是否使用默认排除模式。默认true
depend 如果是true,则对于支持依赖检查的编译器(jikes和classic)启动依赖检查。默认是false。
deprecation,如果是true,显示废弃警告。默认false
destdir类文件的目标目录
encoding源文件的字符编码
excludes
excludesfile
extdirs覆盖java安装可选包的一般位置
failonerror如果true,当出现错误,构建失败。默认是true
fork 如果true,java编译器作为一个新的进程。如果设置,此属性将覆盖build.compiler特性。而ant执行JAVA_HOME/bin中实际的java可执行程序。而不是编译器的Main类。默认false
includeantruntime,如果true,则将ant运行时库包含到类路径。默认true
includejavaruntime,如果是true,则包括来自正在执行的VM的默认运行库。默认是false。
includes
includesfile
memoryinitialsize 当fork=true时工作。为vm指定内存大小。
memorymaximumsize 当fork=true时工作。为vm指定最大内存
nowarn如果是true,把-nowarn参数传递到编译器。默认false
optimize如果true,指示编译器优化代码。默认false。
source如果指定,此属性的文件将作为-source命令行参数传递给javac。
srcdir源代码的位置
target指定一个vm的版本
verbose如果未true,则编译器生成显示输出。默认是false。
除非指定了src元素,否则srcdir的属性是必须的。

可以嵌套0-N个exclude,include,patternset,excludesfile,includesfile
0-N个bootclasspath,classpath,extdirs,src
分享到:
评论

相关推荐

    jetbrains-targetprocess-tasks:jetbrains IDE(例如 phpstorm)的插件,允许用户直接从 IDE 访问目标进程任务

    jetbrains-targetprocess-tasks jetbrains IDE(例如phpstorm)的插件,允许用户直接从IDE访问目标进程任务, 插件应该可以与目标进程 3 一起使用。但是这段代码仍然是 WIP

    Cross-Domain Sentiment Classification with Target Domain Specific Information

    实验数据采用亚马逊的不同种类产品的评论数据,并构建12个跨域二进制分类任务,实验表明跨域分类的自适应方法比组内任务实现效果要好,具有正则化器的组内任务比跨域任务效果好。该方法强调域不变信息和域特定信息对...

    基于视觉的移动机器人目标识别与避障研究

    这项工作研究了基于视觉的移动机器人目标识别和自动避障方法,解决了移动机器人可以在复杂环境中移动和识别目标的问题。... 实验证明,该机器人可以完成目标识别和自主避障的任务,并验证了系统的有效性。

    apache-ant-1.9.3.rar

    每个项目下可以定 义很多目标(target元素),这些目标之间可以有依赖关系。当执行这类目标时,需要执行他们所 依赖的目标。每个目标中可以定义多个任务,目标中还定义了所要执行的任务序列。Ant在构建目标时必须调 用...

    嵌入式系统/ARM技术中的VxWorks下的任务监控方法及应用

    集成开发环境Tornado位于宿主机,用户通过Tornado开发环境完成代码编写、编译、链接,宿主机与目标机通过分别位于其上的Target Server和Target Agent实现信息交互,物理连接往往是串口或者网络,在开发调试过程中,...

    面向目标探测视觉任务的灰度夜视融合图像质量客观评价方法

    为实现面向具体视觉任务提出的融合图像“目标探测感知质量”的客观度量,通过分割红外源图像中感兴趣区域确定融合图像中人眼敏感的目标和背景区域,结合主观评价实验观察条件与人类视觉系统特性确定目标邻域面积,...

    DoTS:目标系统对接接口(将一个分子与多个目标对接的程序)

    DoTS 是 Target Systems 的开源 Docking 接口,用于将 1 个分子与多个目标对接 它支持 SMILES 和与 AutoDock Vina 的结构绘制对接。 它运行 如果没有这些优秀的开源项目,这个项目就不可能实现: Django - Python ...

    北京中科信软实时嵌入式系统 VxWorks培训1

    培训目标: After this course, students will be able to: Design, develop, debug, build, and test real-time applications in a target-host development environment with Workbench and VxWorks. ...

    山东大学人工智能导论实验1工程文件-numpy的基本操作

    使用numpy实现深度学习任务中的一些基本操作,包括以下函数:  sigmoid function  sigmoid gradient function  softmax function  cross entropy loss function 目标:  熟悉numpy的一些基本函数  理解...

    MeMOTR: Long-Term Memory-Augmented Transformer for Multi-Object

    2)应用:视频任务 3)背景:现有的多目标跟踪方法大多只能在相邻帧之间明确利用目标特征,缺乏对长期时间信息的建模能力。 4)方法:本文提出了一种长期记忆增强的Transformer模型(MeMOTR)用于多目标跟踪。该...

    TestWork:ML测试任务

    ML测试任务 使用Train_Data_200k数据,创建一个旨在根据Tag_1 ... 79的值预测Target_1 ... 4参数的值的模型。 收到模型后,将其应用于test_data_100k文件中ML_Data归档文件中提供的测试样本,并基于Tag_1 ... 79值...

    Linux 软实时目标 v2.4:实时研讨会的自定义 Linux 目标。-matlab开发

    Linux Soft Real-Time Target 是 Mathworks 对 Real-Time Workshop 的目标定义。 目标使用 POSIX 实时时钟生成周期性信号,以在每个时间步唤醒模型进程。 进程变为调度器定义的实时最高优先级,因此需要root权限才能...

    绩效管理程序文件.doc

    目标Objectives 通过上级经理与下属员工之间就工作职责、工作目标及标准、工作绩效等问题所做 的沟通,帮助下属不断提高工作业绩,促进下属员工能力的提高,确保个人、部门 及公司绩效目标的实现。同时通过对员工...

    自主捕获中自旋目标运动特性分析与地面模拟方法

    针对在轨服务任务中非合作自旋目标自主捕获操作的特点及自旋目标运动特性分析,建立了目标的简化模型,并对其运动模拟需求进行了分析.在此基础上提出了自旋目标地面运动模拟的方案和2种基于6自由度工业机器人的运动...

    如何写makefile

    2、如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“edit”这个文件,并把这个文件作为最终的目标文件。 3、如果edit文件不存在,或是edit所依赖的后面的 .o 文件的文件修改时间要...

    ZipDotnetToolsIncludeInVSIX:MSBuild软件包,用于安装和压缩dotnet工具或nuget软件包,并包含在VSIX中

    如果需要,使用方项目可以创建自己的目标并使用两个任务之一使用NugetNetToolMatchingPackageVersionZipIncludeInVsixToolTask​​ NugetNetToolZipIncludeInVsixToolTask 添加的目标是: &lt;Target Name=...

    基于物联网的户外环境中用于目标检测的无源红外探测器的分析-研究论文

    传感器的特性和环境影响是使之变得困难的因素,请使用搁置的二进制PIR传感器来完成此任务。 这是在开发带有PIR传感器的系统以在室外环境中进行目标检测和近似跟踪时,试图提出问题和挑战及其可能解决方案的尝试。

    GitHubLinker-for-tp

    GitHubLinker-for-tp 一个小的Usermonkey / Tampermonkey脚本... 这意味着您只需单击一下即可找到与目标流程中正在查看的任务或用户故事相关的任何未审阅的拉取请求。 已知缺点 由于targetprocess页面和插件完全依赖ja

    m后端任务

    该项目是使用Java 11编写的,因此在运行之前,请确保Java 11在目标计算机上可用。 构建JAR文件: mvn全新安装 运行JAR文件: java -jar target / 16098338.jar 构建Docker映像:(Dockerfile必须在此文件夹中可用...

Global site tag (gtag.js) - Google Analytics