将一个简单的类(Sample)进行编译打包运行(传参数)
源文件
java源文件Samplejava
package powerwind;
import javaxswing*;
public class Sample {
public static void main(String[] args) throws Exception {
if (argslength > )
JOptionPaneshowMessageDialog(null args[]);
else
JOptionPaneshowMessageDialog(null HelloWorld);
}
}
ant文件buildxml
注意encoding=GBK 设置后才可以有中文注释
<?xml version= encoding=GBK ?>
<! ===================================== >
<! 周健兴 // >
<! ===================================== >
<project name=sample default=run basedir=>
<description>用于学习的简单ant工程文件</description>
<!属性设置>
<property environment=env />
<property file=buildproperties />
<property name=srcdir value=${basedir}/src />
<property name=javalibdir value=${envJAVA_HOME}/lib />
<property name=builddir value=${basedir}/build />
<property name=classesdir value=${builddir}/classes />
<property name=distdir value=${basedir}/dist />
<! 基本编译路径设置 >
<path id=compileclasspath>
<fileset dir=${javalibdir}>
<include name=toolsjar />
</fileset>
</path>
<! 运行路径设置 >
<path id=runclasspath>
<path refid=compileclasspath />
<pathelement location=${classesdir} />
</path>
<! 排除java源文件的模式集 >
<patternset id=nojava>
<exclude name=**/*java />
</patternset>
<! 初始化建立目录复制文件 >
<target name=init description=初始化建立目录复制文件>
<mkdir dir=${classesdir} />
<mkdir dir=${distdir} />
<copy todir=${classesdir}>
<fileset dir=${srcdir}>
<patternset refid=nojava />
</fileset>
</copy>
</target>
<! 清理删除临时目录 >
<target name=clean description=清理删除临时目录>
<delete dir=${builddir} />
<delete dir=${distdir} />
<echo level=info>清理完毕</echo>
</target>
<! 编译源文件>
<target name=compile depends=init description=编译源文件>
<javac srcdir=${srcdir} destdir=${classesdir} source= target=>
<classpath refid=compileclasspath />
</javac>
</target>
<! 打包类文件 >
<target name=jar depends=compile description=打包类文件>
<jar jarfile=${distdir}/${jarfile} manifest=${srcdir}/${manifestfile}>
<fileset dir=${classesdir} includes=**/** />
</jar>
</target>
<! 从打包后jar的文件里运行 >
<target name=runjar depends=jar description=运行jar>
<java jar=${distdir}/${jarfile} fork=yes dir=${basedir} />
</target>
<! 运行 >
<target name=run depends=compile description=运行>
<java classname=powerwindSample fork=yes dir=${basedir}>
<classpath refid=runclasspath />
<arg line=${parammsg} />
</java>
</target>
</project>
属性文件buildproperties
manifestfile = manifesttxt
jarfile = samplejar
列表文件manifesttxt (最后的回车不能少)
MainClass: powerwindSample
文件结构
E:\JAVA\SAMPLE
│ buildproperties
│ buildxml
│
└─src
│ manifesttxt
│
└─powerwind
Samplejava
可以不事先创建manifesttxt 文件而在buildxml文件中加入一个任务
<! 创建清单文件 >
<target name=createmanifest description=创建清单文件>
<manifest file=${srcdir}/${manifestfile}>
<attribute name=BuiltBy value=${username} />
<attribute name=MainClass value=powerwindSample />
</manifest>
</target>
<! 这里的依赖关系加上createmanifest >
<target name=jar depends=compilecreatemanifest …>
同样如果全部属性在buildxml文件中设置也不用buildproperties这个属性文件了
但是如果属性较多放在其它文件中是比较方便的属性文件可以用XML文件来替代
propsxml 文件
<properties>
<manifest>
<file>manifesttxt</file>
</manifest>
<jar>
<file>samplejar</file>
</jar>
</properties>
这样将原来的${manifestfile}改成${propertiesmanifestfile} ${jarfile} 改成${propertiesjarfile}即可
当然加载属性文件的<property file=buildproperties />也要改成<xmlproperty file=propsxml />
操作说明
切换到目录E:\java\sample>输入 ant Dparammsg=你好啊!
如果输入 ant –projecthelp 会得到各个任务的描述