<?xml version="1.0" encoding="UTF-8"?>
<project name="OurProject" default="deploy">
<description>这是一个Demo Ant构建文件</description>
<target name="init" description="初始化目标">
<mkdir dir="build/classes"/>
<mkdir dir="dist"/>
<mkdir dir="doc"/>
</target>
<target name="compile" depends="init" description="编译目标">
<javac srcdir="src" destdir="build/classes" description="开始编译"/>
</target>
<target name="doc" depends="init" description="文档目标">
<javadoc destdir="doc" sourcepath="src"/>
</target>
<target name="deploy" depends="compile,doc" description="部署目标">
<jar destfile="dist/project.jar" basedir="build/classes"/>
</target>
</project>
<!--
ant -projecthelp
一个构建文件是由“工程(project)、目标(target)、任务(mkdir)”组成的,
如果project有description描述,输出description,否则不输出
如果target有description描述,此target称之为Main target,输出目标名和description,显示信息是Main targets...
否则称之为private target,什么都不输出,包括目标名,因为一个工程中若有Main target,ant认为就不必输出private target了。
如果工程中没有Main target,即是所有的target都没有description描述,那么会输出所有的private target,显示信息是Other targets...
如果task有description描述,什么都不输出
所以,-projecthelp -p是针对project和target的description,对task的description忽略不计
案例:
Buildfile: E:\Document\AntProject\build.xml
这是一个Demo Ant构建文件
Main targets:
compile 编译目标
deploy 部署目标
doc 文档目标
init 初始化目标
Default target: deploy
-->
<?xml version="1.0" encoding="UTF-8"?>
<!-- 这种情况既不是重复执行ant构建文件,也不是在控制台指定多个project,而是纯粹在构建文件有多个依赖关系 -->
<project name="OurProject" default="archive" basedir="..\">
<target name="init" description="创建文件夹">
<mkdir dir="build\classes" description="用来放置类文件"/>
<mkdir dir="dist" description="用来放置打包文件"/>
</target>
<target name="compile" depends="init" description="编译源文件">
<javac srcdir="src" destdir="build/classes"></javac>
</target>
<target name="archive" depends="compile">
<jar destfile="dist\project.jar" basedir="build\classes"></jar>
</target>
<target name="clean" depends="init" description="清除类文件和打包文件">
<delete dir="build" description="如果该文件夹有打开的文件,删除失败"></delete>
<delete dir="dist"></delete>
</target>
</project>
<!--
D:\Workspaces\AntTest\src>ant -projecthelp
Buildfile: D:\Workspaces\AntTest\src\build.xml
Main targets:
clean 清除类文件和打包文件
compile 编译源文件
init 创建文件夹
Default target: archive
D:\Workspaces\AntTest\src>
target clean、 compile、 init都有description,所以它们是Main targets,输出相应的target和description
而archive没有description,所以它是private target,不做任何输出
-->
<?xml version="1.0" encoding="UTF-8"?>
<!-- 这种情况既不是重复执行ant构建文件,也不是在控制台指定多个project,而是纯粹在构建文件有多个依赖关系 -->
<project name="OurProject" default="archive" basedir="..\">
<target name="init">
<mkdir dir="build\classes" description="用来放置类文件"/>
<mkdir dir="dist" description="用来放置打包文件"/>
</target>
<target name="compile" depends="init">
<javac srcdir="src" destdir="build/classes"></javac>
</target>
<target name="archive" depends="compile">
<jar destfile="dist\project.jar" basedir="build\classes"></jar>
</target>
<target name="clean" depends="init">
<delete dir="build" description="如果该文件夹有打开的文件,删除失败"></delete>
<delete dir="dist"></delete>
</target>
</project>
<!--
D:\Workspaces\AntTest\src>ant -projecthelp
Buildfile: D:\Workspaces\AntTest\src\build.xml
Main targets:
Other targets:
archive
clean
compile
init
Default target: archive
target archive、clean、compile、init都没有description,所以它们是private targets,输出相应的target
-->