ANT:属性、环境属性、Ant属性
2015-12-16 08:09
399 查看
<?xml version="1.0" encoding="UTF-8"?>
<project default="execute">
<property name="build.dir" location="build"></property>
<!--使用属性定义相应的路径时,一定使用location而不要使用value-->
<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="ant.zttc.edu.cn.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
<project default="execute">
<property name="build.dir" location="build"></property>
<!--使用属性定义相应的路径时,一定使用location而不要使用value-->
<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="ant.zttc.edu.cn.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
相关文章推荐
- 修改字符串 ToCharArray()
- MySQL中CREATE DATABASE和CREATE SCHEMA区别
- 浅谈如何带领好一个团队
- 浅谈如何带领好一个团队
- PHP7新特性
- ANT:安装、基本使用
- 中小型公司静态资源管理部署方案
- python --批量重命名文件名
- Windows下Python添加库(模块)路径
- Ubuntu选择python版本
- hdu 1542 矩形面积并(扫描线+线段树)
- Xcode: Swift 添加库后找不到库中的类型的解决方法
- Objc中触摸处理阻塞时消息派送的问题
- 斐波那契数列 题集
- Objc中触摸处理阻塞时消息派送的问题
- Objc中触摸处理阻塞时消息派送的问题
- 普法知识(37):如何追责?
- 大龄程序员的未来在何方
- 【C++ STL应用与实现】22: 函数组合之1:如何使用std::bind (since C++11)
- Hadoop Kernel tunning