zoukankan      html  css  js  c++  java
  • ant入门程序

    一. ant简单介绍

    Ant是apache的一个核心项目, 它的作用是项目自己主动化构建, 由于它内置了Javac、Java、创建文件夹、拷贝文件等功能, 

    直接执行build.xml文件就能够编译我们的项目。


    二. ant配置

    1. 新建环境变量ANT_HOME: ant的解压文件夹

    2. 在path中配置:%ANT_HOME%/bin;

    3. 在命令行中输入ant, 假设出现 Buildfile:build.xml does not exist! Build failed 说明配置成功


    三. ant入门程序

    build.xml

    <?xml version="1.0" encoding="GBK"?>
    <project default="targetname">
        <target name="name"></target>
    </project>
    project是生成文件的根元素, 表示一个工程

    target是project的子元素, 表示一个任务, 一个project中能够定义多个target元素, 表示多个任务

    default属性表示默认运行的target, 假设ant命令没有指定target, 则运行default的target

    ant targetName则会运行此target, 而忽略default设置的target

    四. ant编译Java项目流程

    1. 创建目录

    build -> 全部文件信息都保存在这个目录中

             -- src -> 全部源代码信息保存在这个目录中

             -- classes -> 编译好的全部文件保存在这个目录中

             -- dist -> 编译好的jar文件保存在这个目录中 

    2. 将src中文件复制到build/src

    3. 编译源代码

    4. 将源代码打包成jar

    5. 直接执行程序

    <?xml version="1.0" encoding="UTF-8"?>
    <project default="execute">
    	<!-- 使用属性定义对应路径的时候, 使用location(会依据操作系统转换路径), 假设不是路径就使用value -->
    	<property name="build.dir" location="build" />
    	<property name="build.classes" location="${build.dir}/classes" />
    	<property name="build.src" location="${build.dir}/src" />
    	<property name="build.lib.dir" location="${build.dir}/dist" />
    	
    	<!-- 
    		假设属性太多, 能够将属性放在一个外部文件里定义, 在本文件里引用
    		特别注意: 假设是路径就不建议在外部文件里定义, 由于此时就不会设置location的值
    	 -->
    	<property file="build.properties" />
    	
    	<!-- 把环境变量中的參数存放在env这个变量中 -->
    	<property environment="env" />
    	
        <target name="test">
        	<echo>${ant.home}</echo>
        	<echo>${ant.version}</echo>
        	<echo>${env.CLASSPATH}}</echo>
        </target>
    
    	<!-- 
    		fileset能够设定一组文件集来进行操作, dir指明文件集进行选择的路径
    	            通过id能够指定这个文件的名称, 以下使用的时候能够直接引入
    	    include和exclude能够设定包括和排除文件的范围 
    	-->
    	<fileset id="src.path" dir="src">
    		<include name="**/*.*" />
    		<exclude name="**/Test*.java"/>
    	</fileset>
    	
    	<target name="init">
    		<delete dir="${build.dir}" />
    		<mkdir dir="${build.dir}" />
    		<mkdir dir="${build.classes}" />
    		<mkdir dir="${build.src}" />
    		<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="zhangdongping"/>
    			</manifest>
    		</jar>
    	</target>
    	
    	<target name="execute" depends="jar, copySrc">
    		<echo>基于类路径下的classname来完毕运行</echo>
    		<java classname="${execute.class}" classpath="${build.classes}">
    			<arg value="zhangsan" />
    		</java>
    		
    		<echo>基于jar文件运行</echo>
    		<java jar="${build.lib.dir}/${jar.name}" fork="true">
    			<arg value="liming" />
    		</java>
    	</target>
    </project>

    build.properties

    execute.class = com.zdp.test.HelloWorld
    jar.name = hello.jar
    HelloWorld.java

    package com.zdp.test;
    
    public class HelloWorld {
    	public static void main(String[] args) {
    		System.out.println("hello " + args[0]);
    	}
    }



  • 相关阅读:
    JavaScript之链式结构序列化
    js 常用的正则表达式
    99%的人都理解错了HTTP中GET与POST的区别
    取代Promise的Generator生成器函数
    深入了解JavaScript权威指南
    限制input输入类型(多种方法实现)
    textillate.js 文字动画
    jQuery如何改变css伪元素样式
    保存android程序崩溃日志到SD卡
    跟我一起学extjs5(19--模块记录的拖放删除、拖放复制新增)
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/3988330.html
Copyright © 2011-2022 走看看