`
378629846
  • 浏览: 214027 次
  • 性别: Icon_minigender_1
  • 来自: 哈尔滨
社区版块
存档分类
最新评论

ant初探

    博客分类:
  • java
阅读更多

前些天和同事交流,他说ant非常好用,他一直在用,学习资料共享后。这几天研究了一下,还真是不错,这里感谢河东的分享。

之前做过一个java的后台项目需要引入很多jar包,先是用fatjar的方式,将整个工程打成一个jar包进行发布的,一旦修改又要重新打包,上传服务器,费时费力。后来研究了一下MANIFEST.MF文件,可以将引用jar配置到这个文件里,虽然是成功了,但MANIFEST.MF的配置太过麻烦,格式要求过于严格。为此我还专门写了一段生成MANIFEST.MF的代码(见之前的文章MANIFEST.MF的应用以及如何读取jar包外的log4j.properties)。下面我们一步一步用ant来构建发布包。

ant的安装略过,apache网站上下载zip包后直接解压即可。本示例使用的是1.7.0版本。

1、示例工程的结构如下:

 

2、建立build.xml文件:

 

3、打开build.xml,输入如下内容

<?xml version="1.0" ?>
<project name="hlj_task Buildfile" default="compile" basedir=".">
    <!-- 源文件路径 -->
	<property name="src.dir" value="src" />
	<property name="lib.dir" value="lib" />
	<property name="config.dir" value="config" />
	<!-- build路径 -->
	<property name="build.dir" value="build" />
	<property name="build.classes" value="${build.dir}/classes" />
	<property name="build.lib" value="${build.dir}/lib" />
	<property name="build.config" value="${build.dir}/config" />
	<property name="build.bin" value="${build.dir}/bin" />
	<!-- jar里MANIFEST.MF文件的属性 -->
	<property name="jar.name" value="hlj_task.jar" />
	<property name="jar.MainClass" value="com.boco.main.Main" />
	<property name="jar.buildby" value="Shen XueLiang" />
    <!-- 创建build文件夹 -->
	<target name="prepare">
		<mkdir dir="${build.dir}" />
		<mkdir dir="${build.classes}" />
		<mkdir dir="${build.lib}" />
		<mkdir dir="${build.config}" />
		<mkdir dir="${build.bin}" />
	</target>
    
	<target name="clean" description="Removes all generated files.">
		<delete dir="${build.dir}" />
	</target>
	
	<target name="delclass" description="Removes all classes files.">
		<delete dir="${build.dir}/classes" />
	</target>

	<path id="classpath">
		<fileset dir="${lib.dir}">
			<include name="**/*.jar"/>
		</fileset>
	</path>
	
	<target name="compile" depends="prepare" description="Compiles all source code.">
		<javac srcdir="${src.dir}" destdir="${build.classes}">
			<classpath refid="classpath" />
		</javac>
	</target>
	
	<target name="copyjar">
		<copy todir="${build.lib}">
			<fileset dir="${lib.dir}">
				<include name="**/*.jar"/>
			</fileset>
		</copy>
	</target>
	
	<target name="copyconf">
		<copy todir="${build.config}">
			<fileset dir="${config.dir}">
				<include name="*.*"/>
			</fileset>
		</copy>
	</target>
	<!-- MANIFEST.MF文件的Class-Path属性 -->
    <manifestclasspath property="jar.classpath" 
    	jarfile="${src.dir}/${jar.name}"><!-- 可执行jar文件的路径,jar文件可以不存在,但${src.dir}必须存在 -->
      	<classpath>
      		<fileset dir="${lib.dir}"><!-- 依赖jar所在路径 -->
				<include name="**/*.jar"/>
			</fileset>
      	</classpath>
    </manifestclasspath>
    
	<target name="jar" depends="compile,copyjar,copyconf">
		<jar jarfile="${build.bin}/${jar.name}"
		     basedir="${build.classes}">
		    <manifest>
		     	<attribute name="Built-By" value="${jar.buildby}" />
      			<attribute name="Main-Class" value="${jar.MainClass}" />
      			<attribute name="Class-Path" value="${jar.classpath}" />
    		</manifest>
		</jar>
	</target>
	<!-- jar包制作完成后,删除classes文件夹 -->
	<target name="all" depends="clean,jar,delclass"
	        description="Cleans,compiles,then builds the JAR file." />
</project>

 

4、打开cmd窗口,进入工程路径,输入ant all

 

5、ant完成后,build文件夹的结构:

 

6、hlj_task.jar文件里,MANIFEST.MF的文件内容:

 

这样我们部署的时候,只要把build目录下的所有文件copy到服务器,然后在bin目录下启动hlj_task.jar就可以了。如果

有更新,我们只需要替换更新的jar即可。

 

  • ant.pdf (411.1 KB)
  • 下载次数: 43
分享到:
评论
1 楼 super_boy 2012-06-29  
不错,学以致用!:D

相关推荐

    ant ant ant ant

    "Ant ant ant antant ant ant antant ant ant ant" 这个描述可能是在强调Ant在项目构建过程中的重复性和不可或缺性,暗示着它在工程中的频繁使用和核心地位。 Ant的设计理念是“一切都是XML”,它通过XML格式的构建...

    ant ant下载与配置

    ant ant下载 ant配置ant ant下载 ant配置ant ant下载 ant配置

    开发工具 ant-1.9.6

    开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6开发工具 ant-1.9.6...

    ant.jar下载

    org.apache.tools.ant.Main org.apache.tools.ant.Task org.apache.tools.bzip2.CRC org.apache.tools.ant.Target org.apache.tools.ant.Project org.apache.tools.zip.ZipFile org.apache.tools.zip.ZipLong ...

    apache-ant-1.6.5-bin.zip_ ant 1.6.5_ant_ant-1.6.5_apache ant win

    Apache Ant 是一个开源的构建工具,广泛用于Java项目构建,由Apache软件基金会开发。这个"apache-ant-1.6.5-bin.zip"文件是Ant的1.6.5版本的二进制发行版,适合在Windows操作系统上使用。Ant是基于Java的,它的主要...

    ant 讲解ant 讲解ant 讲解ant 讲解

    Ant是Apache组织开发的一款用于构建Java项目的开源工具,它的全称是Apache Ant。自2000年中期推出以来,Ant已经成为Java项目构建的主要选择,它替代了传统的'make'工具,尤其受到开发者们的欢迎。Ant的核心优势在于...

    ant lib ant 所有lib包

    Ant是Apache软件基金会下的一个Java项目,它是一个构建工具,类似于Make或MSBuild,用于自动化Java项目的构建过程,如编译、打包、测试等任务。Libs在编程语境中通常指的是库文件,包含了预编译的代码和资源,供其他...

    ANT文件详解 ant介绍 ANT 命令

    ANT文件详解 ant介绍 ANT 命令

    ant元件库ant元件库ant元件库

    在IT行业中,Ant是一个非常重要的构建工具,尤其在Java开发领域。标题提到的"ant元件库"实际上是指Apache Ant的库,它是一个基于Java的任务执行系统,用于自动化软件项目的构建过程。Ant以其XML为基础的构建文件...

    ant.jar,ant-junit.jar,ant-launcher.jar,ant-trax.jar

    在IT行业中,Ant是一个至关重要的自动化构建工具,尤其在Java开发领域中被广泛使用。Ant以其XML为基础的构建文件(通常命名为build.xml)为特点,允许开发者定义和执行项目的构建任务。现在,让我们深入探讨一下标题...

    ant工具ant资源包

    Apache Ant 是一个由Java编写的构建工具,它主要用于自动化软件项目的构建、编译、测试和部署过程。这个“ant工具ant资源包”很可能是Apache Ant的一个版本,具体为1.8.3。Ant以XML为基础来描述项目构建的规则和依赖...

    ant配置ant配置

    Ant是Apache组织开发的一款强大的Java项目构建工具,它基于XML,允许开发者定义构建过程和依赖关系,便于自动化执行编译、测试、打包等任务。在Java开发中,Ant被广泛用于构建大型项目,确保代码的一致性和可重复性...

    Axure AntDesign元件库

    Axure AntDesign元件库是一款专为Axure设计的高质量组件集合,它旨在帮助原型设计师快速构建基于AntDesign设计系统的Web应用界面。AntDesign是阿里巴巴开源的一款著名前端UI框架,以其优雅、直观、高效的特性广受...

    Ant design axure设计库

    **Ant Design Axure设计库详解** Ant Design是一个广泛使用的开源UI设计框架,源自阿里巴巴集团,专为构建高效、稳定且具有良好用户体验的Web应用而设计。它提供了丰富的组件库,覆盖了网页界面设计的各个方面,...

    ANT+协议 VS2015源文件

    ANT+协议是一种无线通信协议,主要用于运动健康和健身设备之间的数据传输。该协议由Garmin公司开发,并在开放源码的基础上推广,使得不同厂商的设备能够无缝共享数据,如心率、速度、距离等运动参数。VS2015源文件指...

    ant脚本资料ant

    Ant是Apache软件基金会下的一个项目,它是一款强大的构建工具,主要用在Java环境中,用于自动化构建、测试和部署Java应用程序。Ant使用XML来描述构建过程和依赖关系,使得构建过程可配置且易于跨平台移植。 1. **...

    ant工具和ant教程

    Ant是Apache软件基金会下的一个Java项目,它是一个构建工具,主要用于管理Java项目的构建过程。Ant以其XML为基础的构建文件(build.xml)而著名,这些文件详细描述了如何编译、打包和测试Java应用程序。Ant的核心...

    apache-ant-1.9.16-bin.zip

    Apache Ant 是一个开源的构建工具,广泛用于Java项目管理,它是Apache软件基金会的产品之一。Ant以其XML为基础的构建文件(build.xml)而著名,这种文件定义了构建过程中的任务序列,使得开发人员能够自动化编译、...

    Ant 资源 Ant 资源

    Ant 资源 Ant 资源 Ant 资源 Ant 资源 Ant 资源 Ant 资源 Ant 资源

    Ant工具的使用及Ant介绍

    1,什么是ant ant是构建工具 2,什么是构建 概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个 3,ant的好处 跨平台 --因为ant是使用java实现...

Global site tag (gtag.js) - Google Analytics