<!--打成ear包。ear下包括war,jar,APP-INF等-->
<!--这里的default要配置成所有target里最后执行的一个-->
<project name="ccbear" default="ear" basedir=".">
<tstamp>
<format property="today" pattern="yyyy-MM-dd"/>
</tstamp>
<property name="app.dir" value="${basedir}" />
<property name="src.dir" value="${app.dir}\src" />
<property name="classes.dir" value="${app.dir}\build\classes" />
<property name="webcontent.dir" value="${app.dir}\WebRoot" />
<path id="build.classpath" description="编译时依赖的jar">
<fileset dir="../ccbear/APP-INF/lib">
<include name="*.jar" />
</fileset>
<pathelement location="${classes.dir}" />
</path>
<target name="prepare" description="创建classes文件夹">
<mkdir dir="${classes.dir}" />
</target>
<target name="compile" depends="prepare" description="编绎">
<javac srcdir="${src.dir}" destdir="${classes.dir}" fork="yes" debug="true" encoding="UTF-8" deprecation="on" optimize="off" includes="**" includeantruntime="false">
<classpath refid="build.classpath" />
</javac>
<!--单独处理在src下的properties、xml文件-->
<copy todir="${classes.dir}">
<fileset dir="${src.dir}" >
<!--**表示可能存在的多层级下的文件-->
<include name="**/*.properties"/>
<include name="**/*.xml"/>
</fileset>
</copy>
</target>
<target name="web-war" depends="compile" description="创建WEB发布包">
<war destfile="${app.dir}/ccbweb.war" webxml="${webcontent.dir}/WEB-INF/web.xml">
<!--将文件里的内容打成一个war包-->
<fileset dir="${webcontent.dir}">
<!--**表示所有的层级-->
<include name="**/**.*"/>
<exclude name="**/*.jar"/>
<exclude name="**/*.class"/>
</fileset>
<!-- 将lib下的jar文件拷贝到war包的对应路径下 -->
<lib dir="../ccbear/APP-INF/lib">
<include name="*.jar"/>
<exclude name="tap_ejb.jar"/>
<exclude name="ncrtpif.jar"/>
<exclude name="struts.jar"/>
<exclude name="ncrauth_ejb.jar"/>
<exclude name="ant.jar"/>
<exclude name="commons-net-1.4.1.jar"/>
</lib>
<!-- 将class文件拷贝到war包的对应路径下。 -->
<classes dir="${basedir}/build/classes" />
</war>
</target>
<!--这里使用了相对路径,工程名不要随意变更-->
<target name="ear" depends="web-war" description="创建WEB发布包">
<ear destfile="${app.dir}/ccbear.ear" appxml="../ccbear/META-INF/application.xml">
<fileset dir="../ccbear">
<include name="APP-INF/**"/>
</fileset>
<fileset dir="../ccbear/APP-INF/lib" >
<include name="engineejb.jar"/>
</fileset>
<fileset dir="${app.dir}" >
<include name="ccbweb.war"/>
</fileset>
</ear>
<delete>
<fileset dir="${app.dir}">
<include name="ccbweb.war"/>
</fileset>
</delete>
<delete dir="${classes.dir}" />
<!--按照日期新建目录-->
<mkdir dir="build/${today}" />
<!--将生成的ear文件拷贝到刚刚新建的目录-->
<copy todir="build/${today}">
<fileset dir="${basedir}" >
<include name="ccbear.ear"/>
</fileset>
</copy>
<!--删除生成的ear文件-->
<delete>
<fileset dir="${basedir}">
<include name="ccbear.ear"/>
</fileset>
</delete>
</target>
</project>
《!--针对web工程,打成的war包--》
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义一个工程,默认任务为warFile。 -->
<project name="DQC" default="warFile" basedir=".">
<tstamp>
<format property="today" pattern="yyyy-MM-dd"/>
</tstamp>
<!-- 定义属性,打成war包的名称。 -->
<property name="warFileName" value="DQC.war"></property>
<property name="build.class" value="${basedir}/build/classes"></property>
<!-- 定义路径,编译java文件时用到的jar包。 -->
<path id="project.lib">
<fileset dir="${basedir}/WebRoot/WEB-INF/lib">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- 定义清空任务:清空原有的class文件,创建新的build路径。 -->
<target name="clean">
<delete dir="${build.class}" />
<mkdir dir="${build.class}" />
</target>
<!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下,这里只会编译java文件,properties和xml文件要单独处理 -->
<target name="compile" depends="clean">
<javac fork="yes" debug="true" encoding="UTF-8" srcdir="${basedir}/src" destdir="${build.class}" includeantruntime="false">
<classpath refid="project.lib">
</classpath>
</javac>
<!--单独处理在src下的properties、xml文件-->
<copy todir="${build.class}">
<fileset dir="${basedir}/src" >
<!--**表示可能存在的多层级下的文件-->
<include name="**/*.properties"/>
<include name="**/*.xml"/>
</fileset>
</copy>
</target>
<!-- 定义默认任务,将class文件集合成jar包。 -->
<target name="warFile" depends="compile">
<!-- 删除原有war包 -->
<delete dir="${basedir}/${warFileName}" />
<!-- 建立新war包 -->
<war destfile="${basedir}/${warFileName}" webxml="${basedir}/WebRoot/WEB-INF/web.xml">
<!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->
<!-- 这里需要注意的是.properties文件-->
<fileset dir="${basedir}/WebRoot">
<include name="**/**.*" />
<exclude name="**/*.jar"/>
<exclude name="**/*.class"/>
</fileset>
<!-- 将jar和class文件拷贝到war包的对应路径下。 -->
<lib dir="${basedir}/WebRoot/WEB-INF/lib" />
<classes dir="${build.class}" />
</war>
<!--打成war包之后去掉新建的build目录-->
<delete dir="${build.class}" />
<mkdir dir="build/${today}" />
<copy todir="build/${today}">
<fileset dir="${basedir}" >
<include name="${warFileName}"/>
</fileset>
</copy>
<delete>
<fileset dir="${basedir}">
<include name="${warFileName}"/>
</fileset>
</delete>
</target>
</project>
相关推荐
在这个例子中,Ant会尝试找到与build.xml同级目录下的`config.properties`文件,并加载其中的属性。这些属性可以在整个构建过程中被其他任务引用。 在properties文件中,键值对的格式通常是`key=value`,例如: ``...
本篇将重点讲解如何使用Ant打包Web工程,以及涉及到的相关知识点。 首先,我们要理解Ant的核心概念。Ant是一个基于XML的构建工具,它的主要任务定义在名为`build.xml`的文件中。这个文件包含了构建过程的所有步骤,...
`build.xml`是Ant的构建配置文件,它是Ant执行任务的蓝图,定义了一系列的构建目标和任务。文件的结构通常包括项目声明、任务定义、属性设置、目标定义以及依赖关系等部分。下面我们将逐一剖析这些关键元素。 1. **...
最后,使用`scp`任务将打包好的文件上传到远程服务器: ```xml ``` 在这个过程中,你可能还需要处理一些细节,比如使用私钥文件进行身份验证,或者在部署前检查远程服务器的状态。此外,你还可以使用Ant的条件...
在这个SVN+ant服务器代码打包编译流程中,我们将深入探讨这两个工具的集成使用,以及如何通过build.xml和build.properties文件实现自动化编译。 首先,让我们了解SVN的安装和配置。在Windows上,你可以下载...
5. **部署**:打包完成后,可以执行部署操作,例如将JAR文件复制到服务器或特定的发布目录。 ```xml ${jar.dir}/${ant.project.name}.jar" todir="dist"/> ``` 在实际应用中,Ant还可以与其他工具(如Maven、...
2. **属性(Properties)**:Ant允许在文件中定义属性,这些属性可以在整个构建过程中被引用。例如,设置源代码目录和目标目录: ```xml <property name="src.dir" value="src"/> ``` 3. **任务(Tasks)**:...
- **引入(Import)**:将其他`build.xml`文件引入当前文件,便于组织大型项目。 Ant的强大之处在于其灵活性和扩展性。通过熟练掌握`build.xml`文件的编写,你可以根据项目需求定制各种复杂的构建流程。同时,Ant与...
它的核心在于一个名为`build.xml`的配置文件,它定义了项目的构建过程,包括编译、测试、打包和部署等各个阶段。在本文中,我们将深入探讨`build.xml`的结构、元素以及如何使用它来管理Java项目。 1. **Ant基本概念...
标题 "ant 打包 java project 为jar" 指的是使用Apache Ant工具将Java项目打包成一个可执行的JAR文件的过程。Apache Ant是一个基于XML的构建工具,广泛用于自动化Java项目的构建、编译、测试和打包任务。在Java开发...
这段代码会将`build.dir`目录下的所有`.class`文件复制到`dist.dir`。 七、条件语句与选择器 Ant 提供了条件语句,如`if`和`unless`,以及选择器(Selectors)来控制任务的执行。例如,只有当某个文件存在时才执行...
- `build.xml`:这是Ant的主要配置文件,其中包含了一系列的构建目标(targets)和任务(tasks)。 - `<project>`:根元素,定义项目的基本信息,如名称、版本和默认目标。 - `<target>`:定义了一个可执行的任务...
5. **执行Ant脚本**:在命令行中运行`ant compressJs`,Ant会自动找到对应的构建脚本并执行`compressJs`目标,将源目录下的js文件压缩并保存到目标目录。 除了YUI Compressor,还有其他压缩工具,如Google的Closure...
在实际项目中,build.xml文件可能会变得更加复杂,包括对依赖库的管理、资源文件的处理、多模块项目的构建等。 在提供的“ant-1.9.4 配置文档”中,你将找到更详细的Ant使用指南,包括各种任务的用法、属性的设置...
`compile`目标首先创建`build`目录,然后编译`src`目录下的源代码到`build`目录。`jar`目标依赖于`compile`,意味着在创建JAR之前必须先完成编译。`clean`目标用于删除`build`目录,以便于重新构建。 通过这种方式...
Ant是基于XML的,它的主要配置文件是`build.xml`,其中包含了构建过程的所有任务和规则。`build.properties`文件则用于存储项目相关的属性,如版本号、路径设置等,它允许我们在构建过程中动态地引用这些属性。`ci_...
在Java世界里,Ant是一个非常重要的自动化构建工具,它基于XML来定义任务,可以执行编译、测试、打包等操作。对于J2ME(Java 2 Micro Edition)开发,Ant同样适用,帮助开发者自动化处理代码的编译过程。本文将详细...
在 Ant build 文件中,我们将公用的 JAR 包都放到 EAR 文件下,而不是分别在 EJB JAR 包和 WAR 包中,以减少 JAR 包的冗余。 通过上面的步骤,我们可以使用 Ant 工具将 EJB 项目打包成 EAR 文件,並 deploy 到 ...