`
tmj_159
  • 浏览: 707055 次
  • 性别: Icon_minigender_1
  • 来自: 永州
社区版块
存档分类
最新评论

ant 使用过程中常用配置

 
阅读更多

09年的时候写过一个ant的简单安装和最基本的使用其实就是一个hello world 级别的东西。

最近因为项目需要又用了一次ant来打包,所以把项目中用到的东西再整理下。

 

1.定义常量

 

    通常是一些路径

<property name="project-src" value="${basedir}/src" />

   

   也有可能是系统环境变量里面的路径

<property environment="env"/>      
<property name="xx-lib" value="${env.XX_HOME}/lib" />

   注意:如果新建一个系统变量, 在Eclipse 不会自动更新你新加的变量,需要重启Eclipse。

 

   获取时间戳

<tstamp>
	<format property="time" pattern="yyyy-MM-dd hh:mm:ss" />
</tstamp>

 

2.定义target

   

   基本样子

<target name="jar-all" depends="clean,jar-a,jar-b" description="Builds a.jar, b.jar">
</target>

   

   一个清理文件或者文件夹的target

<target name="clean" description="Removes all generated artifacts">
	<delete dir="fouder" />
	<delete file="a.jar" />
	<delete file="b.jar" />
</target>

   

   对项目中某些文件package打一个jar包,分为两步,先编译,再打JAR包

<target name="compile-a" depends="clean,init">
	<mkdir dir="build" />
	<javac srcdir="${project-src}" destdir="build" debug="true" deprecation="off" encoding="UTF-8">
		<include name="com/tang/test/a/**/*" />
 		<classpath>
			 <pathelement path="${xx-lib}/xx.jar" />
			 <pathelement path="${third-part-lib}/log4j-1.2.15.jar" />
 		</classpath >
 	</javac>
</target>

   

    编译好后接下来打包

<target name="jar-a" depends="compile-a" description="Builds a.jar">
	<jar basedir="build" destfile="a.jar">
		<manifest>
			<attribute name="Created-By" value="locke." />
			<attribute name="Created-Date" value="${time}" />
		</manifest>
	</jar>
	<delete dir="build" />
</target>

 

3.引用其他的文件的target

<target name="backend">
	<ant antfile="${basedir}/xx_jar.xml" target="jar-all" />
</target>

 

 

4.最后给出一个打完整war包的build.xml

<project name="war Builder" default="war-a" basedir=".">
	<target name="clean">
		<delete dir="${tempWebRoot}" />
	</target>

	<target name="init">
		<property name="webRoot" value="WebRoot" />
		<property name="webRootLib" value="WebRoot/WEB-INF/lib" />
		<property name="tempWebRoot" value="tempWebRoot" />
		<property name="tempWebRootLib" value="tempWebRoot/WEB-INF/lib" />
	</target>

	<target name="copy" depends="init,clean">
		<mkdir dir="${tempWebRoot}" />
		<mkdir dir="${tempWebRootLib}" />

		<copy todir="${tempWebRoot}">
			<fileset dir="${webRoot}">
				<exclude name="**/*.war" />
				<exclude name="WEB-INF/classes/**/*" />
				<exclude name="**/log4j-1.2.15.jar" />
			</fileset>
		</copy>

		<copy todir="${tempWebRootLib}" file="${basedir}/console.jar">
		</copy>

	</target>

	<target name="war-a" depends="copy" description="package war">
		<war warfile="${basedir}/a.war" webxml="${tempWebRoot}/WEB-INF/web.xml">
			<!--
			<lib dir="${tempWebRoot}/WEB-INF/lib" />
			<classes dir="${tempWebRoot}" />-->
			<fileset dir="${tempWebRoot}" />
		</war>

		<delete dir="${tempWebRoot}" />
	</target>
</project>

 

5. 小技巧

 

5.1 将多个jar 变成一个jar

<project name="test" default="jarjar" basedir=".">
	<target name="init">
		<mkdir dir="newJar" />
	</target>

	<target name="jarjar">
		<jar destfile="newJar/one.jar">
			<zipgroupfileset dir="." includes="*.jar" excludes="*.properties" />
		</jar>
	</target>
</project>

 5.2  打jar包时classpath中包含很多不同jar时

有时候我们写的程序可能包含很多JAR包,如果一个一个写很麻烦不错,还容易出错,最让人受不了的是jar包版本变了之后还需要重新修改编译文件。

         <target name="init">
		<property name="third-part-lib" value="${basedir}/WebRoot/WEB-INF/lib" description="the third part lib" />
		<path id="libPath">
			<fileset dir="${third-part-lib}">
				<include name="**/*.jar" />
			</fileset>
		</path>

		<pathconvert property="asmm.classpath" pathsep=" ">
			<mapper>
				<chainedmapper>
					<flattenmapper />
					<globmapper from="*" to="WebRoot/WEB-INF/lib/*" />
				</chainedmapper>
			</mapper>
			<path refid="libPath" />
		</pathconvert>
	</target>

	<target name="compile" depends="clean,init">
		<mkdir dir="build" />
		<javac srcdir="${project-src}" destdir="build" debug="true" deprecation="off" encoding="UTF-8">
			<classpath>
				<fileset dir="${third-part-lib}">
					<include name="**/*.jar" />
				</fileset>
				<fileset dir="${as-lib}">
					<include name="a.jar" />
					<include name="b.jar" />
				</fileset>
			</classpath >
		</javac>
	</target>

	<target name="jar" depends="compile" description="Builds power.jar">
		<jar basedir="build" destfile="${dest}/${jar-name}">
			<manifest>
				<attribute name="Main-Class" value="com.tang.test.JettyServer" />
				<attribute name="Class-Path" value=". lib/a.jar lib/b.jar server_properties.xml log4j.properties ${asmm.classpath}" />
				<attribute name="Created-By" value="locke." />
				<attribute name="Created-Date" value="${time}" />
			</manifest>
		</jar>
       </target>

 这里我只写出来了部分关键的内容。

  

 

 

 

 

 

分享到:
评论

相关推荐

    ANT的常用标签练习

    3. **`&lt;property&gt;`**:用于设置和获取属性值,这些属性可以在整个构建过程中被引用。例如,设置Java编译器的路径或者项目版本号。 4. **`&lt;classpath&gt;`**:定义类路径,用于指定构建过程中需要的类库和资源文件。 5...

    ant使用指南及使用教程

    Ant是Apache软件基金会下的一个Java构建工具,它以其XML为基础的构建文件,使得开发者能够定义构建过程中的任务,包括编译、打包、测试等。Ant是Java项目管理和自动化构建的重要工具,尤其在早期的Java EE应用开发中...

    ant工具使用指南ant工具使用指南

    3. 配置环境变量:在系统环境变量PATH中添加Ant的bin目录,如C:\ant\bin。 4. 验证安装:在命令行中输入`ant -version`,如果显示Ant的版本信息,则表示安装成功。 三、基本结构与XML配置 1. build.xml:这是Ant的...

    一个常用的ant的build.xml

    4. **文件集(Filesets)**:文件集允许我们指定一组文件或目录,这些可以在任务中使用,比如在编译源代码时指定源代码目录。 5. **条件(Conditions)**:条件可以用来控制构建流程,根据某些条件决定是否执行特定...

    Ant使用指南(适合初学者)

    本指南将针对初学者,详细介绍Ant的基本概念、安装、配置以及常用任务的使用。 一、Ant简介 Ant的设计理念是“简单就是美”。在Java开发中,当项目变得复杂时,手动管理编译、测试和部署等过程会变得繁琐,Ant则能...

    使用ant 元件所用的 jar 包

    在Java开发过程中,Ant是一个非常重要的构建工具,它允许开发者自动化构建、编译、测试和部署应用程序。本文将深入探讨Ant及其与jar包的关系,帮助Java程序员更好地理解和使用这个强大的工具。 首先,让我们理解...

    Ant使用指南(介绍得很详细)

    Apache Ant是一种广泛使用的Java构建工具,它以XML格式定义项目构建过程,允许开发者通过编写build.xml文件来自动化软件构建流程。本指南将深入探讨Ant的基本概念、核心元素、常用任务和命令,帮助你全面理解并熟练...

    Ant基本使用指南--从入门到精通

    - **Unix/Linux**:在 `.bashrc` 或 `.profile` 文件中设置 `ANT_HOME` 和 `PATH` 变量,指向 Ant 的安装目录。 ##### 2.2 配置Java环境 确保系统已安装 JDK,并正确设置 `JAVA_HOME` 环境变量,指向 JDK 的安装...

    Ant 使用Junit进行单元测试

    要在Ant中使用JUnit,我们需要在build.xml文件中配置JUnit任务。以下是一个基本的配置示例: ```xml &lt;!-- 添加JUnit库到类路径 --&gt; &lt;!-- 添加项目编译后的类文件 --&gt; &lt;!-- 编译源代码 --&gt; ...

    [转]使用Ant管理配置Weblogic

    【标题】:“使用Ant管理配置Weblogic” 在Java企业级应用开发中,WebLogic Server是一款常用的中间件,用于部署和管理应用程序。Ant是Apache组织提供的一款构建工具,它基于XML来定义任务,使得构建过程可配置且...

    Apache Ant 使用指南

    3. **运行Ant**:在命令行中,使用`ant`命令执行构建文件中的目标,如`ant compile`或`ant jar`。 **三、常用Ant任务** 1. **javac**:编译Java源码,支持类路径、源路径、排除文件等选项。 2. **copy**:复制...

    ant 1.70中文手册

    Ant以其基于XML的构建文件(build.xml)著称,这种文件定义了一系列的任务(tasks),使得开发过程中的自动化工作得以实现。Ant 1.7.0是Ant的一个早期版本,尽管现在已经有了更新的版本,但对于理解Ant的基本原理和...

    ant脚本资料ant

    Ant使用XML来描述构建过程和依赖关系,使得构建过程可配置且易于跨平台移植。 1. **Ant基本概念** - **构建文件**:在Ant中,构建过程是通过一个名为`build.xml`的XML文件定义的,这个文件包含了所有构建任务和...

    Ant使用工具

    在Ant的使用过程中,`build.xml`文件是核心,它包含了构建过程的所有指令和配置。 一、Ant的基本结构 一个典型的Ant构建文件`build.xml`分为几个主要部分: 1. **项目声明(Project)**:文件的开头定义了项目的...

    Apache Ant常用标签介绍

    Apache Ant是一种广泛使用的Java构建工具,它通过XML配置文件来定义构建任务,使得开发者能够自动化地编译、打包、测试和部署Java项目。在Ant中,各种任务是通过标签来实现的,这些标签提供了构建过程中的不同功能。...

    ant+ivy+nexus的使用

    "ant+ivy+nexus"的组合就是一种常用的Java项目构建和依赖管理解决方案。以下是对这个主题的详细解释: 1. Ant: Ant是Apache软件基金会的一个项目,是一个基于Java的构建工具。它使用XML来描述构建过程和依赖关系,...

    react 关于自定义样式引入和ant-design样式引入配置问题

    在React开发过程中,为了实现应用的个性化样式设计和利用第三方库如Ant Design的美观组件,我们需要正确地管理和引入自定义样式以及库样式。本话题主要关注如何在React项目中配置Webpack或其他构建工具,以实现...

    Junit+ant+cobertura示例

    为了将Cobertura集成到Ant构建过程中,需要在build.xml中添加Cobertura任务。这包括初始化Cobertura数据文件,运行测试并记录覆盖率信息,最后生成覆盖率报告。Cobertura提供的Ant任务如cobertura-instrument用于...

    Ant入门-ant入门pdf

    Ant是Java开发中广泛使用的自动化构建工具,由Apache软件基金会开发,其设计目标是简化项目构建过程,使开发者能够通过XML配置文件来定义构建任务。 Ant的核心概念是基于任务(task)的,这些任务可以是编译源代码、...

Global site tag (gtag.js) - Google Analytics