Ant打jar包实例

  1. Ant打jar包的常用build.xml示例(包含第三方jar)
    build.xml
    Ant打jar包,含第三方jar。一般项目典型build.xml配置。单包可执行。
    注意:路径 dir 可以给绝对路径或相对路径。
<?xml version="1.0" encoding="UTF-8"?>
<project name="jcterm" default="package">
	<!-- 声明引用属性 -->
	<property name="src.dir" value="src" />
	<property name="classes.dir" value="classes" />
	<property name="lib.dir" value="lib" />
	<property name="dist.dir" value="dist" />
	<!-- project name="jcterm"=prj.name -->
	<property name="prj.name" value="jcterm" />
	<property name="author.name" value="beeworkshop" />
	<property name="version.num" value="1.0.1" />
	<property name="build.number" value="2.0" />
	<!-- 定义主类(包全路径名) -->
	<property name="main.class" value="com.jcraft.jcterm.JCTermSwingFrame" />

	<!-- 定义classpath -->
	<path id="master-classpath">
		<fileset file="${lib.dir}/*.jar" />
		<pathelement path="${classes.dir}" />
	</path>

	<!-- 输出信息到控制台中 -->
	<target name="info" description="show project information">
		<echo message="-----------------------------------" />
		<echo message="项目${prj.name}的Ant build文件夹:" />
		<echo message="${src.dir}文件夹是项目${prj.name}的源文件夹" />
		<echo message="${classes.dir}文件夹是.class文件输出文件夹" />
		<echo message="${lib.dir}文件夹存放第三方jar包" />
		<echo message="${dist.dir}文件夹存放生成的项目jar包" />
		<echo message="" />
		<echo message="运行:" />
		<echo message="java -jar ${prj.name}.${version.num}.jar" />
		<echo message="-----------------------------------" />
		<echo message="" />
	</target>

	<!-- 项目初始化 -->
	<target name="init" depends="info" description="init the project">
		<mkdir dir="${classes.dir}" />
		<echo message="生成${classes.dir}目录" />
		<mkdir dir="${dist.dir}" />
		<echo message="生成${dist.dir}目录" />
	</target>

	<!-- 编译.java源文件 -->
	<target name="compile" depends="init" description="compile the source files">
		<javac srcdir="${src.dir}" destdir="${classes.dir}" source="1.8" target="1.8" encoding="utf-8" failonerror="true" includeAntRuntime="false" debug="true">
			<classpath refid="master-classpath" />
			<compilerarg line="-Xlint:unchecked" />
			<compilerarg line="-Xlint:deprecation" />
		</javac>
		<echo message=".java源文件编译完成。生成字节码文件.class" />
	</target>

	<!-- 打包成jar -->
	<target name="package" depends="compile" description="make .jar file">
		<!-- 指定时间戳,可以调用TODAY -->
		<tstamp>
			<format property="TODAY" pattern="yyyy-MM-dd HH:mm:ss" />
		</tstamp>

		<jar destfile="${dist.dir}/${prj.name}.${version.num}.jar" basedir="${classes.dir}">
			<exclude name="**/*Test.*" />
			<exclude name="**/Test*.*" />
			<!-- 生成清单文件 -->
			<manifest>
				<attribute name="Built-By" value="${author.name}" />
				<attribute name="Implementation-Version" value="${version.num}.${build.number}" />
				<attribute name="Built-Date" value="${TODAY}" />
				<attribute name="Main-Class" value="${main.class}" />
			</manifest>
			<!-- 这里引入第三方jar包库 -->
			<zipfileset src="${lib.dir}/commons-net-3.6.jar" />
			<zipfileset src="${lib.dir}/expectit-core-0.9.0.jar" />
			<zipfileset src="${lib.dir}/jsch-0.1.55.jar" />
		</jar>
		<echo message="生成项目文件${prj.name}.${version.num}.jar" />
		<echo message="请查看${dist.dir}目录" />
	</target>

	<target name="cleanup" description="cleanup .class and .jar">
		<!-- 删除已有的.class文件 
		<delete verbose="true">
			<fileset dir="${classes.dir}" includes="**/*.*" />
		</delete>
		<echo message="删除.class文件" />
		-->

		<!-- 删除classes文件夹 -->
		<delete dir="${classes.dir}" verbose="true" />
		<echo message="删除${classes.dir}目录及其子目录" />

		<!-- 删除已有的.jar文件 -->
		<delete verbose="true">
			<fileset dir="${dist.dir}" includes="*.jar" />
		</delete>
		<echo message="删除.jar文件" />
	</target>

</project>
  1. Ant配置文件build.xml的其他配置例子
<?xml version="1.0" encoding="UTF-8"?>
<project name="jcterm" default="dist" basedir=".">
	<description>演示Ant有用的功能</description>

	<!-- set global properties for this build -->
	<property name="version" value="0.0.11" />
	<property name="src" location="src" />
	<property name="build" location="build" />
	<property name="dist" location="dist" />
	<property name="javadoc" location="javadoc" />
	<property name="javac.debug" value="true" />
	<property name="jcterm.jar" value="jcterm-${version}.jar" />

	<!-- dependent jar files -->
	<path id="project.class.path">
		<fileset dir="lib" includes="*.jar" />
	</path>

	<target name="init">
		<tstamp />
		<mkdir dir="${build}" />
	</target>

	<target name="compile" depends="init" description="compile the source">
		<available property="jschagentproxy.available" classname="com.jcraft.jsch.agentproxy.connector.PageantConnector">
			<classpath refid="project.class.path" />
		</available>
		<javac srcdir="${src}" destdir="${build}" classpathref="project.class.path" includeantruntime="false" debug="${javac.debug}">
			<exclude name="**/JCTermIdentityRepository.java" unless="jschagentproxy.available" />
			<exclude name="**/JCTermMIDP.java" />
			<exclude name="**/JCTermJ2MECDC.java" />
			<exclude name="**/JCTermSWT.java" />
		</javac>
	</target>

	<target name="dist" depends="compile" description="generate the distribution">
		<mkdir dir="${dist}/lib" />
		<jar jarfile="${dist}/lib/${jcterm.jar}" includes="com/jcraft/jcterm/*.class" basedir="${build}" />
	</target>

	<target name="clean" description="clean up">
		<delete dir="${build}" />
		<delete dir="${dist}" />
		<delete dir="${javadoc}" />
	</target>

	<target name="javadoc">
		<javadoc sourcepath="${src}" destdir="${javadoc}">
			<packageset dir="${src}" />
		</javadoc>
	</target>

	<!-- 条件判断 -->
	<target name="test" depends="init" description="condition testing">
		<condition property="scondition">
			<!-- 在这里给出条件设定值 -->
			<istrue value="true" />
		</condition>
		<antcall target="isTrue" />
		<antcall target="isFalse" />
	</target>
	<target name="isTrue" if="scondition">
		<echo>is ture</echo>
		<zip destfile="${build}/jcterm-${version}.zip" duplicate="preserve">
			<zipfileset dir="${src}" includes="**/*.java" />
		</zip>
		<echo>zip all java files</echo>
		<echo>通配符:
			**匹配目录名
			*匹配文件名
		</echo>
	</target>
	<target name="isFalse" unless="scondition">
		<echo>is false</echo>
	</target>
</project>
  1. hadoop提交Job
<?xml version="1.0" encoding="UTF-8"?>
<project name="mywordcount" basedir="." default="finish">
	<!-- 准备目录 -->
	<target name="prepare">
		<delete>
			<fileset dir="${basedir}/build" />
			<filename name="${basedir}/lib/mywordcount.jar" />
		</delete>
		<mkdir dir="${basedir}/build/classes" />
	</target>

	<!-- 定义路径变量 -->
	<path id="hadooplib">
		<fileset dir="E:/hadoop-2.9.2/_libs">
			<include name="*.jar" />
		</fileset>
	</path>

	<!--编译程序 -->
	<target name="compile" depends="prepare">
		<javac srcdir="${basedir}/src" destdir="${basedir}/build/classes" encoding="utf-8" includeantruntime="on">
			<classpath refid="hadooplib" />
			<!-- 排除src下级目录com/bbc/及其所有子目录,包括文件 -->
			<exclude name="com/bbc/**" />
		</javac>
		<copy file="${basedir}/conf/core-site.xml" todir="${basedir}/build/classes" />
		<copy file="${basedir}/conf/mapred-site.xml" todir="${basedir}/build/classes" />
		<copy file="${basedir}/conf/yarn-site.xml" todir="${basedir}/build/classes" />
	</target>

	<!-- 打包  -->
	<target name="package" depends="compile">
		<jar destfile="${basedir}/lib/mywordcount.jar" basedir="${basedir}/build/classes">
			<manifest>
				<attribute name="Main-Class" value="com.bee.wc.WCApp" />
			</manifest>
		</jar>
	</target>

	<target name="finish" depends="package">
		<copy file="${basedir}/lib/mywordcount.jar" todir="E:/tmp" />
		<echo>------ 打包完成 ------</echo>
	</target>
</project>
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值