ant编译java工程

我们编译和打包一个java工程需要用javac、jar、java命令,我们现在举个使用ant打包和运行java项目的例子,在写之前需要了解ant对应的javac、jar、java对应的任务

javac任务

用于编译一个或一组java文件,属性如下:

srcdir表示源程序的目录。
destdir表示class文件的输出目录。
includes表示被编译的文件。
excludes表示被排除的文件。
classpath表示所使用的类路径。
debug表示包含的调试信息。
optimize表示是否使用优化。
verbose 表示提供详细的输出信息。
fileonerror表示当碰到错误就自动停止。

deprecation表示的是提供详细的废弃错误信息,以表明那些类和调用时废弃的

excludes属性表示的是在源码目录srcdir中只编译除excludes之外的源码

用法如图:

includes属性表示的是在源码目录srcdir中只编译includes指定源码,其他的不编译

用法如图:

 

 

 

 

javadoc任务

用来生成html帮助文档

生成文档如下:



 

jar任务

 用来生成一个JAR文件,属性如下

destfile表示JAR文件名

basedir表示被归档的文件目录

includes表示被归档的文件

excludes表示被排除的文件

java任务

用来执行编译生成的.class文件,其属性如下
classname 表示将执行的类名
jar表示包含该类的JAR文件名
classpath所表示用到的类路径
fork表示在一个新的虚拟机中运行该类
failonerror表示当出现错误时自动停止
output 表示输出文件
append表示追加或者覆盖默认文件。
执行的参数用嵌套的<arg> 

完整的build.xml内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!--测试使用ant打包java程序,并运行-->
<project basedir="." default="runJava" name="jarTest">
	<!--定义打包项目基本信息-->
	<property name="project_name" value="测试ant打包" />
	<property name="version" value="1.0" />
	<property name="date" value="2013-05-04" />
	<property name="author" value="流浪鱼" />

	<!--定义路径-->
	<property name="src.dir" value="src" />
	<property name="build.dest" value="${basedir}/build_ant/dest" />
	<property name="build.dest.classes" value="${basedir}/build_ant/dest/classes" />
	<property name="build.dest.jar" value="${basedir}/build_ant/dest/jar" />
	<property name="jar.name" value="test.jar" />
	<target name="clear">
		<description>删除ant构建时生成文件夹</description>
		<delete dir="${build.dest}"/>
	</target>
	<target name="init" depends="clear">
		<description>创建构建需要文件夹</description>
		<echo message="---${project_name} ${version} [${date}]  by [${author}]---" />
		<mkdir dir="${build.dest}" />
		<mkdir dir="${build.dest.classes}" />
		<mkdir dir="${build.dest.jar}" />
	</target>
	<target name="compile" depends="init">
		<description>编译java程序</description>
		<javac srcdir="${src.dir}" destdir="${build.dest.classes}" encoding="UTF-8"/>
	</target>
	<target name="buildJar" depends="compile">
		<description>打包java程序</description>
		<!--没有指定主方法
		<jar destfile="${build.dest.jar}/${jar.name}" basedir="${build.dest.classes}" />
		-->
		<jar destfile="${build.dest.jar}/${jar.name}" basedir="${build.dest.classes}" >
			<manifest>
				<attribute name="Main-class" value="Test" />
			</manifest>
		</jar>
	</target>
	<!--
	<target name="runJava" depends="buildJar">
		<description>运行java程序</description>
		<java classname="com.test.Test" classpath="${build.dest.jar}/${jar.name}"/>
	</target>
	-->

	<target name="runJava" depends="buildJar">
		<description>运行java程序</description>
		<java classname="com.test.Test" >
			<classpath>
				<!-- 使用编译类后的class所在文件夹
				<pathelement path="${build.dest.classes}" />
				-->
				<!--使用jar文件-->
				<pathelement path="${build.dest.jar}/${jar.name}" />
			</classpath>
		</java>
	</target>
</project>

 测试项目见附件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值