ant起步之一个简单的build.xml

我的代码位置:


laolang@laolang:~/code/ant/li$ tree
.
├── build.xml
└── src
    └── com
        └── laolang
            └── hello
                └── HelloWorld.java

4 directories, 2 files
laolang@laolang:~/code/ant/li$


HelloWorld.java//

package com.laolang.hello;

import java.util.Scanner;

public class HelloWorld{
	public static void main(String[] argv){
		Scanner input = new Scanner(System.in);
		System.out.println("input two integer numbers:");
		int a = input.nextInt();
		int b = input.nextInt();
		System.out.println(a + " + " + b + " = " + (a + b) );


		System.out.println("Hello World");
	}
}



build.xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义生成文件的project根元素,默认的target为空  -->
<project name="HelloWorld" default="" basedir=".">
	<!--  定义三个简单属性  -->
	<property name="src" value="src" />
	<property name="classes" value="classes" />
	<property name="dest" value="dest" />

	<!--  定义一组文件和目录集  -->
	<path id="classpath" >
		<pathelement path="${classes}" />
	</path>

	<!--  定义 help target ,用于输出该生成文件的帮助信息  -->
	<target name="help" description="打印帮助信息">
		<echo>help          打印此帮助信息</echo>
		<echo>compile       编译Java源文件</echo>
		<echo>run           运行程序</echo>
		<echo>build         打包JAR包</echo>
		<echo>clean         清除所有编译生成的文件</echo>
	</target>


	<!--  定义 compile target,用于编译Java源文件  -->
	<target name="compile" description="编译">
		<!-- 先删除classes属性所代表的文件夹  -->
		<delete dir="${classes}" />
		<!-- 创建classes属性所代表的文件夹  -->
		<mkdir dir="${classes}" />

		<!-- 编译Java文件,编译后的class文件放到classes属性所代表的文件夹内  -->
		<javac destdir="${classes}" debug="true" includeantruntime="yes"
			deprecation="false" optimize="false" failonerror="true">

			<!-- 指定需要编译的Java文件所在的位置 -->
			<src path="${src}" />
			<!--  指定编译Java文件所需要的第胡方类库所在的位置  -->
			<classpath refid="classpath" />
		</javac>
	</target>

	<!-- 定义 run target ,用于运行Java源文件,运行之前先执行 compile target -->
	<target name="run" description="运行" >
		<!-- 运行com.laolang.hello.HelloWorld类,其中fork属性指定启动另一个JVM来执行java命令  -->
		<java classname="com.laolang.hello.HelloWorld" fork="yes" failonerror="true">
			<classpath refid="classpath" />
		</java>
	</target>

	<!--  定义builid target,用于打包JAR文件,运行之前先执行compile target  -->
	<target name="build" description="打包JAR文件">
		<!-- 删除dest属性所代表的文件夹 -->
		<delete dir="${dest}" />
		<!-- 创建dest属性所代表的文件夹 -->
		<mkdir dir="${dest}" />

		<!-- 指定将classes属性所代表的文件夹下的所有*.class文件都打开到app.jar文件中 -->
		<jar destfile="${dest}/app.jar" basedir="${classes}" includes="**/*.class">
			<!-- 为JAR包的清单文件添加属性  -->
			<manifest>
				<attribute name="Main-Class" value="com.laolang.hello.HelloWorld" />
			</manifest>
		</jar>
	</target>

    <!-- 定义 clean target ,用于删除所有编译生成的文件 -->
	<target name="clean" description="删除编译生成的文件">
		<!-- 删除两个目录,目录下的文件也一并删除 -->
		<delete dir="${classes}" />
		<delete dir="${dest}" />
	</target>
</project>


运行效果:

laolang@laolang:~/code/ant/li$ l #未运行ant之前的文件列表
总用量 8.0K
4.0K -rw-rw-r-- 1 laolang laolang 2.9K 11月 21 15:20 build.xml
4.0K drwxrwxr-x 3 laolang laolang 4.0K 11月 21 14:19 src/
laolang@laolang:~/code/ant/li$ tree #文件树
.
├── build.xml
└── src
    └── com
        └── laolang
            └── hello
                └── HelloWorld.java

4 directories, 2 files
laolang@laolang:~/code/ant/li$ ant help #此ant帮助列表
Buildfile: /home/laolang/code/ant/li/build.xml

help:
     [echo] help          打印此帮助信息
     [echo] compile       编译Java源文件
     [echo] run           运行程序
     [echo] build         打包JAR包
     [echo] clean         清除所有编译生成的文件

BUILD SUCCESSFUL
Total time: 0 seconds
laolang@laolang:~/code/ant/li$ ant compile # 编译
Buildfile: /home/laolang/code/ant/li/build.xml

compile:
    [mkdir] Created dir: /home/laolang/code/ant/li/classes
    [javac] Compiling 1 source file to /home/laolang/code/ant/li/classes

BUILD SUCCESSFUL
Total time: 1 second
laolang@laolang:~/code/ant/li$ ant run # 运行
Buildfile: /home/laolang/code/ant/li/build.xml

run:
     [java] input two integer numbers:
3 4
     [java] 3 + 4 = 7
     [java] Hello World

BUILD SUCCESSFUL
Total time: 2 seconds
laolang@laolang:~/code/ant/li$ ant build # 打包JAR文件
Buildfile: /home/laolang/code/ant/li/build.xml

build:
    [mkdir] Created dir: /home/laolang/code/ant/li/dest
      [jar] Building jar: /home/laolang/code/ant/li/dest/app.jar

BUILD SUCCESSFUL
Total time: 0 seconds
laolang@laolang:~/code/ant/li$ java -jar dest/app.jar # 运行JAR文件
input two integer numbers:
3 4
3 + 4 = 7
Hello World
laolang@laolang:~/code/ant/li$ tree
.
├── build.xml
├── classes
│   └── com
│       └── laolang
│           └── hello
│               └── HelloWorld.class
├── dest
│   └── app.jar
└── src
    └── com
        └── laolang
            └── hello
                └── HelloWorld.java

9 directories, 4 files
laolang@laolang:~/code/ant/li$ 




你可能感兴趣的:(ant,build.xml)