`

Ant 打包java应用

阅读更多

最近在维护一个以前的项目,发现以前发布的时候居然都是手动发布,项目中用到第三方的Jar包,每次要解压、复制,麻烦而且容易出错。于是想起用Ant发布。上网查下资料,简单写了个Demo,里面只用到了Log4j.jar。

 

工程目录如图,其中dist和build目录是Ant构建过程中生成的:

工程结构

 

下面是MainClass的代码:

/**
*@author DaiYanming
*@create date 2011-12-9
*/

package dc;

import org.apache.log4j.Logger;

public class MainClass {

	public static void main(String[] args) {
		Logger logger=Logger.getLogger(MainClass.class);
		logger.info("信息");
		logger.debug("调试");
		logger.error("出错啦");
	}

}

 

 Ant构建文件:

<?xml version="1.0" ?>
<project name="testPackage" default="jar">

	<property name="jar.name" value="testPackage.jar" />
	<property name="dist.home" value="dist" />
	<property name="build.home" value="build" />
	<property name="lib.home" value="lib" />

	<path id="lib_path">
		<fileset dir="${lib.home}">
			<include name="**/*.jar" />
		</fileset>
	</path>

	<target name="init">
		<mkdir dir="build/classes" />
		<mkdir dir="dist" />
	</target>

	<target name="compile" depends="init">
		<javac srcdir="src" destdir="build/classes" encoding="utf-8">
			<classpath>
				<path refid="lib_path"/>
			</classpath>
		</javac>
	</target>

	<target name="prepare" depends="init">
		<copy todir="${build.home}/classes/lib">
			<fileset dir="${lib.home}">
				<include name="**/*.jar" />
			</fileset>
		</copy>
		<copy todir="${build.home}/classes">
			<fileset dir=".">
				<include name="**/*.properties" />
			</fileset>
		</copy>
	</target>
	
	<target name="jar" depends="compile,prepare" description="Create jar and MANIFEST.MF">
		<!-- create a property containing all .jar files, prefix lib/, and seperated with a space -->
		<pathconvert property="libs.project" pathsep=" ">
			<mapper>
				<chainedmapper>
					<!-- remove absolute path -->
					<flattenmapper />
					<!-- add lib/ prefix -->
					<globmapper from="*" to="../lib/*" />
				</chainedmapper>
			</mapper>

			<path>
				<!-- lib.home contains all jar files, in several subdirectories -->
				<fileset dir="${lib.home}">
					<include name="**/*.jar" />
				</fileset>
			</path>
		</pathconvert>

		<!-- create the jar -->
		<jar destfile="${dist.home}/${jar.name}" basedir="${build.home}/classes">
			<!-- define MANIFEST.MF -->
			<manifest>
				<attribute name="Built-By" value="${user.name}" />
				<attribute name="Main-Class" value="dc.MainClass" />
				<section name="common">
					<attribute name="Specification-Version" value="${component.version}" />
				</section>

				<!-- finally, use the magically generated libs path -->
				<attribute name="Class-Path" value="${libs.project}" />
			</manifest>
		</jar>
	</target>


	<target name="clean" depends="init">
		<delete dir="build" />
		<delete dir="dist" />
	</target>
</project>

 在命令行下切换到工程目录,输入ant jar 提示:

E:\javawork\testPackage>ant
Buildfile: build.xml

init:

compile:

prepare:
     [copy] Copying 1 file to E:\javawork\testPackage\build\classes

jar:
      [jar] Building jar: E:\javawork\testPackage\dist\testPackage.jar

BUILD SUCCESSFUL
Total time: 0 seconds

 

打包完毕。

 

  • 大小: 6.7 KB
分享到:
评论

相关推荐

    JAVA_Ant详细介绍与应用

    在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。 一.安装与配置 二.Ant的关键元素 三.Ant的常用任务 四.利用Ant构建和部署Java工程 1.利用Ant的javac任务来编译java程序 2.使用...

    用Ant为Java桌面应用程序打包

    NULL 博文链接:https://forchase.iteye.com/blog/837863

    java用ant打包

    通过ant对项目的打包,ant的详细介绍与应用

    Ant基本应用教程学习

    目录 ANT简介 安装Apache Ant 验证Apache Ant的安装 安装 Eclipse Ant构建文件 Ant属性任务 Ant属性文件 Ant数据类型 ...Ant打包应用 Ant部署应用程序 Ant执行Java代码 Ant和Eclipse集成 Ant Junit集成

    android编译与ant打包

    当一个代码项目大了以后,每次重新编译,打包,测试等都会变得非常复杂而且重复,因此c语言中有make脚本来帮助这些工作的批量完成。在Java 中应用是平台无关性的,当然不会用平台...本文介绍了android编译和ant打包原理

    用ANT来编译打包Eclipse插件

    当应用hudson一类的自动化平台来构建Eclipse插件时,不能直接调用ANT工具来编译。本工具自动修改Eclipse的路径为 ${ECLIPSE_HOME},并且自动可查找相应插件。 使用方法: java -jar buildfileGenerator.jar build....

    Java操作Ant压缩和解压文件及批量打包Anroid应用

    主要介绍了使用Java操作Ant压缩和解压文件以及批量打包Anroid应用的教程,Ant是一个自动化部署工具,用来处理zip和tar文件非常方便,需要的朋友可以参考下

    ANT IN ACTION 第2版 中文版.z01

    本书介绍了如何使用Ant 1.7去构建、测试、部署现代的Java应用程序,进行测试驱动的Java应用开发,本书还覆盖了一些最新式的构建技术,包括库管理、持续整合及自动化部署。本书将向你全面介绍大多数Java项目的核心...

    ANT IN ACTION 第2版 中文版.z02

    本书介绍了如何使用Ant 1.7去构建、测试、部署现代的Java应用程序,进行测试驱动的Java应用开发,本书还覆盖了一些最新式的构建技术,包括库管理、持续整合及自动化部署。本书将向你全面介绍大多数Java项目的核心...

    ant_in_action.pdf(ant 实战)second edtion

    本书介绍了如何使用Ant 1.7去构建、测试、部署现代的Java应用程序,进行测试驱动的Java应用开发,本书还覆盖了一些最新式的构建技术,包括库管理、持续整合及自动化部署。本书将向你全面介绍大多数Java项目的核心...

    ant打包jar文件脚本分享

    本文介绍的ant脚本是用来打包jar文件,做完JAVA应用一定会用到这个,需要的朋友可以参考下

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 出版社: 电子...

    apache-ant-1.9.3-src.tar

    在Java 中应用是平台无关性的,当然不会用平台相关的make脚本来完成这些批处理任务了,ANT本身就是这样一个流程脚本引擎,用于自动化调用程序完成项目的编译,打包,测试等。除了基于JAVA是平台无关的外,脚本的格式...

    ant1.9资源

    在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。 一. 安装与配置 下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:"apache-ant-1.7.0),...

    android批量打包生成apk

    当你要将多个应用发布到多个推广渠道的时候,你会针对每一个渠道为android应用添加相应的渠道号,这样工作量会很大。这时你会想:如果有某种...用编译脚本build.xml,2.java调用ant,3.bat批处理文件(也是调用ant)

    Ant 1.9.2 API (CHM格式)

    Ant是Java程序员的一个好的工具,主要可以帮助程序员进行java项目的的管理,包括批量编译、部署、文档生成等工作,其用途远不止如此,ant内置了大量的API进行各种文件系统操作,在各种应用服务器中都被广泛应用于...

    ejb3+ant开发实例

    本实例采用了两个项目来实现(一个客户端和一个服务器端),并且采用ant进行打包、部署,默认采用oracle11g数据库 客户端可以安装到任何java web服务器中(例如tomcat)或者应用服务器中,服务器端必须部署在应用...

Global site tag (gtag.js) - Google Analytics