java

位置:IT落伍者 >> java >> 浏览文章

使用ant编译打包应用程序


发布日期:2018年04月05日
 
使用ant编译打包应用程序

将一个简单的类(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 会得到各个任务的描述

               

上一篇:初学者入门:Struts中基本配置入门

下一篇:我为什么学习Hibernate