一、ant 属性设置,用 property 标签,详解如下:

特点

大小写敏感;

不可改变,先到先得,谁先设定,之后的都不能改变。

设置

1 、设置 name 和 value 属性值,比如: <property name="srcdir" value="${basedir}/src"/>

2 、 设置 name 和 refid 属性值,比如: <property name="srcpath" refid="dao.compile.classpath"/> ,其中dao.compile.classpath 在别的地方定义。

3 、设置 name 和 location 属性值,比如: <property name="srcdir" location="src"/> ,即将 srcdir 的值设     置为:当前项目根目录的 /src 目录。

4 、设置 file 属性值,比如: <property file="build.properties"/> , 导入 build.properties 属性文件中的属性值

5 、设置 resource 属性值,比如: <propety resource="build.properties"/>, 导入 build.properties 属性文件中的属性值

6 、设置 url 属性值,比如: <property url="http://www.blogjava.net/wiflish/build.properties"/>, 导入http://www.blogjava.net/wiflish/build.properties 属性文件中的属性值。

7 、设置环境变量,比如: <property environment="env"/> ,设置系统的环境变量为前缀 env.  <property name="tomcat.home" value="${env.CATALINA_HOME}"/> 将系统的 tomcat 安装目录设置到     tomcat.home 属性中。

代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project default="execute"> <property name="build.dir" location="build"></property>
<!--使用属性定义相应的路径时,使用location表明路径适合当前系统-->
<property name="build.classes" location="${build.dir}\classes"></property>
<property name="build.src" location="${build.dir}/src"></property>
<property name="build.lib.dir" location="${build.dir}/dist"></property>
<property name="execute.class" value="com.learn.ant.HelloWorld"/>
<property name="jar.name" value="hello.jar"></property> <target name="test">
<echo>${build.dir}</echo>
<echo>${build.classes}</echo>
</target> <!--fileset可以设定一组文件集来进行操作,dir指明文件集要进行选择的路径,
通过id可以指定这个文件的名称,在使用的时候进行直接的引入
include和exclude可以设定包含返回和排除范围**/*.*所有目录中的所有文件
-->
<fileset id="src.path" dir="src">
<include name="**/*.*"/>
<!--<exclude name="**/*.java"/>-->
</fileset> <target name="init">
<delete dir="${build.dir}"></delete>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.src}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib.dir}"/>
</target> <target name="copySrc" depends="init">
<copy todir="${build.src}">
<fileset refid="src.path"></fileset>
</copy>
</target> <target name="compile" depends="init">
<javac destdir="${build.classes}" srcdir="src"></javac>
</target> <target name="jar" depends="compile">
<jar destfile="${build.lib.dir}/${jar.name}" basedir="${build.classes}">
<manifest>
<attribute name="Main-Class" value="${execute.class}"/>
<attribute name="Build-By" value="Konghao"/>
</manifest>
</jar>
</target> <target name="execute" depends="jar,copySrc"> <echo>基于类路径的classname来完成执行</echo>
<java classname="${execute.class}" classpath="${build.classes}">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java> <echo>基于jar文件执行</echo>
<java jar="${build.lib.dir}/${jar.name}" fork="true">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java>
</target>
</project>

引用外部文件中定义的参数和值,以及使用 ant 属性和 系统环境变量参数

build.xml 文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<project default="execute"> <property name="build.dir" location="build"></property>
<!--使用属性定义相应的路径时,使用location表明路径适合当前系统-->
<property name="build.classes" location="${build.dir}\classes"></property>
<property name="build.src" location="${build.dir}/src"></property>
<property name="build.lib.dir" location="${build.dir}/dist"></property>
<property name="execute.class" value="com.learn.ant.HelloWorld"/>
<property name="jar.name" value="hello.jar"></property> <!--如果属性太多,可以将属性放置到一个外部文件中定义,之后进行引用
特别注意:如果是路径不建议在外部文件中定义,因为此时就不会设置location的值-->
<property file="build.properties"></property> <!--把环境变量中的参数到处到env这个变量中-->
<property environment="env"></property> <target name="test">
<echo>${ant.home}</echo>
<echo>${ant.version}</echo>
<echo>${env.CATALINA_HOME}</echo>
<echo>${env.OS}</echo>
</target> <!--fileset可以设定一组文件集来进行操作,dir指明文件集要进行选择的路径,
通过id可以指定这个文件的名称,在使用的时候进行直接的引入
include和exclude可以设定包含返回和排除范围**/*.*所有目录中的所有文件
-->
<fileset id="src.path" dir="src">
<include name="**/*.*"/>
<!--<exclude name="**/*.java"/>-->
</fileset> <target name="init">
<delete dir="${build.dir}"></delete>
<mkdir dir="${build.dir}"/>
<mkdir dir="${build.src}"/>
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib.dir}"/>
</target> <target name="copySrc" depends="init">
<copy todir="${build.src}">
<fileset refid="src.path"></fileset>
</copy>
</target> <target name="compile" depends="init">
<javac destdir="${build.classes}" srcdir="src"></javac>
</target> <target name="jar" depends="compile">
<jar destfile="${build.lib.dir}/${jar.name}" basedir="${build.classes}">
<manifest>
<attribute name="Main-Class" value="${execute.class}"/>
<attribute name="Build-By" value="Konghao"/>
</manifest>
</jar>
</target> <target name="execute" depends="jar,copySrc"> <echo>基于类路径的classname来完成执行</echo>
<java classname="${execute.class}" classpath="${build.classes}">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java> <echo>基于jar文件执行</echo>
<java jar="${build.lib.dir}/${jar.name}" fork="true">
<arg value="张三"/>
<arg value="李四"/>
<arg value="王五"/>
</java>
</target>
</project>

创建 build.properties 文件,代码如下:

execute.class = ant.zttc.edu.cn.HelloWorld
jar.name = hello.jar

Ant学习---第四节:Ant属性的介绍的更多相关文章

  1. Ant学习总结3(很多的属性,用的时候方便查找)

    感谢原作者:http://blog.csdn.net/lipeijs3/article/details/5137160 一.              Ant 与 Makefile : GNU Mak ...

  2. 【转】Ant学习笔记——自己构建Ant编译环境

    自从年初开始用NetBeans6.0,才接触到Ant. 这是今年6月份的一篇Ant学习笔记.安装 1.下载并构建环境.   去官网下载src包和bin包.解压缩它们到同一目录,运行build.bat, ...

  3. VUE2.0实现购物车和地址选配功能学习第四节

    第四节 v-on实现金额动态计算 用¥金额 进行格式处理,可以使用原生js进行转换,但是在vuei,使用filter过滤器更加方便 注: 1.es6语法=>和import等 好处在于res参数后 ...

  4. Ant学习---第五节:Ant_Junit介绍(基于3的版本)

    Junit3 和 Junit4 有本质上的区别 1.普通java类,代码如下: package learn.junit; public class HelloWorld { public String ...

  5. JPA学习---第四节:JPA实例与JPA主键生成策略

    1.编写实体类,代码如下: package learn.jpa.bean; import javax.persistence.Entity; import javax.persistence.Gene ...

  6. JSP学习(四)JSP属性范围

    P属性范围 四种属性范围分别指以下四种: 当前页page:一个属性只能在一个页面中取得,跳转到其他页面无法取得 一次服务器请求request:一个页面中设置的属性,只要经过了服务器跳转,则跳转之后的页 ...

  7. OpenNebula学习第四节之磁盘镜像的制作

    一.准备工作 需要准备一个Ubuntu16.04的ISO文件上传至服务器,如下图所示 二.操作步骤 2.1:创建操作目录 创建一个/var/tmp/cloud_image目录,把Ubuntu16.04 ...

  8. Vue 2.0学习(四)计算属性

    {{}}模板内的表达式常用于简单的运算,当运算过长或逻辑复杂时,会难以维护. <div> {{ text.split(',').reverse().join('') }} </div ...

  9. Python学习-第四节:常用模块-logging,re,time

    1:logging模块 import logging logging.debug('This is debug message') logging.info('This is info message ...

随机推荐

  1. grep,awk和sed的常用命令和语法

    Grep的常用命令语法 1. 双引号引用和单引号引用在g r e p命令中输入字符串参数时,最好将其用双引号括起来.例如:“m y s t r i n g”.这样做有两个原因,一是以防被误解为 s h ...

  2. final 的用法总结

    1.修饰成员变量 修饰普通变量 表明这个变量是一个常量,不可以修改这个变量的值,一般这样的变量的变量名都要大写 修饰引用变量 表明这个引用不能够指向别的对象了,只能够指向指定的这个对象 2.修饰方法 ...

  3. 3月2日 Linked List Cycle

    今天星期天,准备好周一的PPT内容,再回来做题,以后考虑周末做一个APP或者微信帐号玩吧. 回到题目, Linked List Cycle,一个检查单项链表是否有环路的问题. 题目周五的时候就简单做过 ...

  4. MFC创建对话框组件对应变量并进行设置值(VS2010)

    m_path = strFolderPath; UpdateData(FALSE);

  5. Mysql的ssl主从复制+半同步主从复制

    Mysql的ssl主从复制+半同步主从复制 准备工作 1.主从服务器时间同步 [root@localhost ~]# crontab -e */30 * * * * /usr/sbin/ntpdate ...

  6. jQuery通过jquery.form.js插件使用AJAX提交Form表单

    我简单使用了一下,jQuery Form插件有一下优点:  1.支持提交前验证. 2.支持提交后回调. 3.采用AJAX方式,有很好的用户体验 4.提交方式是灵活.只要指定要提交的form ID即可. ...

  7. CentOS 6.4下通过YUM快速安装配置LAMP服务器(Apache+PHP5+MySQL)

    准备篇: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dp ...

  8. 2014年第五届蓝桥杯试题C/C++程序设计B组——李白打酒

    题目描述: 标题:李白打酒 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他一共 ...

  9. sqoop导入数据到hive---2

    1.hive-table 从mysql导入数据到hive表中,可以使用--hive-table来指定hive的表名,不指定hive表名,则hive表名与mysql表名保持一致. sqoop impor ...

  10. fancybox去除不受待见的水平滚动条

    用fancybox在嵌套某个页面时,有时莫名其妙的会出现的消除不掉的幽灵般水平滚动条,如何去除: github上的解决方案:https://github.com/fancyapps/fancyBox/ ...