`
free_chenwei
  • 浏览: 24705 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

ant build.xml java编译部署

    博客分类:
  • JAVA
 
阅读更多

增加一段批处理文件  deploy.bat

@echo off

echo 该工程编译需要JDK5.0或以上版本,请保证已设置JAVA_HOME环境变量为JDK5安装目录

@echo off

if "%JAVA_HOME%" == "" goto error

@echo on

"%JAVA_HOME%/bin/java" -cp lib/ant.jar;lib/ant-launcher.jar;lib/ant-contrib.jar;"%JAVA_HOME%/lib/tools.jar" -Dmode=%2 org.apache.tools.ant.launch.Launcher -buildfile build.xml %1

 

 

昨天重新翻新简单的学习了下,ant编译部署,每次总是匆匆而看,瞬间则遗忘,这次做个笔记,以备下次,还是那句话灵验,好记性,不如好笔头。

 

先贴出示例工程中用到的build.xml内容:

 

 

<?xml version="1.0" encoding="UTF-8"?>

<project name="ant-project" default="run" basedir="../">

    <!-- 这里的basedir是工程的目录为根目录  一般basedir="."表示的是build.xml文件所在的相对目录为根目录即src -->

    <echo message="工程的目录是:${basedir}" />

 

    <!-- =================================

                 property: init ...             

         ================================= -->

    <property name="src" value="src" />

    <property name="dest" value="/${basedir}/WebRoot/WEB-INF/classes" />

    <!-- 定义发布目录 把工程copytomcat的工作目录下-->

    <property name="webApp" value="./deploy/war/" />

    <property name="lib.dir" location="/${basedir}/WebRoot/WEB-INF/lib" />

    <property name="classpath" location="/${basedir}/deploy/classes" />

    <property name="webname" value="cxf" />

 

    <!-- =================================

                 classpath: init ...             

        ================================= -->

    <!--定义项目编译的时候,以来的lib包的路径-->

    <path id="project.class.path">

       <pathelement path="${classpath}" />

       <fileset dir="${lib.dir}">

           <include name="**/*.jar" />

       </fileset>

    </path>

   

    <!-- =================================

                  target: init             

         ================================= -->

    <target name="init">

       <delete dir="/${basedir}/deploy/classes"></delete>

       <!-- 删除war-->

       <delete file="/${basedir}/deploy/${webname}.war"></delete>

       <!-- 删除war目录-->

       <delete dir="/${basedir}/deploy/war/"></delete>

       <!-- 新建目录,比如新建编译需要的class文件路径 -->

       <mkdir dir="/${basedir}/deploy/classes" />

    </target>

   

    <!-- =================================

                  target: compile             

         ================================= -->

    <!-- 编译class文件-->

    <target name="compile" depends="init">

       <!-- <javac srcdir="${src}" destdir="/${basedir}/deploy/classes"></javac> -->

       <!-- target="1.4" 表示编译器用1.4的方式编译,当然也可以采用1.6classpath 中的refid这表示依赖于那些jar包编译 --> 

        <javac fork="true" target="1.6" srcdir="src" destdir="${classpath}" debug="false" > 

            <classpath refid="project.class.path" />

        </javac> 

    </target>

   

   

    <!-- =================================

                  target: run             

         ================================= -->

    <target name="run" depends="compile" description="description">

       <!--除了class文件外,其他文件拷贝到tomcat目录下-->

       <copy todir="${webApp}" overwrite="true">

           <fileset dir="${basedir}/WebRoot" excludes="**/*.class" />

       </copy>

       <copy todir="${webApp}/WEB-INF/classes/" overwrite="true">

           <fileset dir="/${basedir}/deploy/classes/">

              <include name="**/*.class" />

           </fileset>

       </copy>

 

       <!--class文件打包,放到/WEB-INF/lib目录下-->

       <!--

       <jar destfile="${webApp}/WEB-INF/lib/test.jar">

           <fileset dir="/${basedir}/deploy/classes">

              <include name="**/*.class" />

           </fileset>

       </jar>

       -->

       <war destfile="/${basedir}/deploy/${webname}.war">

           <fileset dir="/${basedir}/deploy/war">

           </fileset>

       </war>

    </target>

   

</project>

 

工程目录结构:

 

 

 

从以上的XML文件可以看出,整个编译部署的步骤分为三步:

1、  初始化,包括属性定义,类路径,目录删除已经目录创建;

2、  编译java文件;

3、 打包文件,如jarwar

 

分为三步,这样我觉得哈理解起来很容易,至于里面具体的设置参数我接下来再简单讲讲我从别人那地方理解的,嘎嘎,

 

编译部署,整个过程与路径有着千丝万缕的关系,当时是相对路径了,其中参考物就是build.xml文件的路径,

 

 

 

<?xml version="1.0" encoding="UTF-8"?>

<!-- 这里的basedirant工程运行的目录,一般basedir="."表示的是build.xml文件所在的目录,basedir=”../”表示build.xml文件所在的目录的上级目录;name属性名称ant project名称,default默认执行target的名称-->

<project name="ant-project" default="run" basedir="../">

     <!—根据日志或监控器的级别输出信息,包括 messagefileappendlevel-->

<echo message="工程的目录是:${basedir}" />

   

<!-- 变量定义与初始化,如定义文件夹路径和文件名称等,使用这些变量语法是:${} -->

    <property name="src" value="src" />

    <property name="dest" value="/${basedir}/WebRoot/WEB-INF/classes" />

    <!-- 定义发布目录 把工程copytomcat的工作目录下-->

    <property name="webApp" value="./deploy/war/" />

    <property name="lib.dir" location="/${basedir}/WebRoot/WEB-INF/lib" />

    <property name="classpath" location="/${basedir}/deploy/classes" />

    <property name="webname" value="cxf" />

 

    <!-- =================================

                 classpath: init ...             

        ================================= -->

    <!--定义项目编译时,所依赖类的路径配置;pathelement指定目录或jar文件,节点属性有 locationpathlocation指定jar文件,path指目录;fileset指定目录下的所有文件,属性includeexclude -->

    <path id="project.class.path">

       <pathelement path="${classpath}" />

       <fileset dir="${lib.dir}">

           <include name="**/*.jar" />

       </fileset>

    </path>

   

    <!-- =================================

                  target: init             

         ================================= -->

<!—delete是删除文件或者目录,属性有dirfile

<delete includeEmptyDirs=”true”>

   <fileset dir=”.” includes=”**/*.bak”/>

</delete>

 

mkdir是指创建文件或在目录,属性有dirfile-->

    <target name="init">

       <delete dir="/${basedir}/deploy/classes"></delete>

       <!-- 删除war-->

       <delete file="/${basedir}/deploy/${webname}.war"></delete>

       <!-- 删除war目录-->

       <delete dir="/${basedir}/deploy/war/"></delete>

       <!-- 新建目录,比如新建编译需要的class文件路径 -->

       <mkdir dir="/${basedir}/deploy/classes" />

    </target>

   

    <!-- =================================

                  target: compile             

         ================================= -->

    <!-- 编译class文件-->

    <target name="compile" depends="init">

       <!-- <javac srcdir="${src}" destdir="/${basedir}/deploy/classes"></javac> -->

       <!-- target="1.4" 表示编译器用1.4的方式编译,当然也可以采用1.6classpath 中的refid这表示依赖于那些jar包编译 --> 

        <javac fork="true" target="1.6" srcdir="src" destdir="${classpath}" debug="false" > 

            <classpath refid="project.class.path" />

        </javac> 

    </target>

   

   

    <!-- =================================

                  target: run             

         ================================= -->

    <target name="run" depends="compile" description="description">

       <!--除了class文件外,其他文件拷贝到tomcat目录下-->

       <copy todir="${webApp}" overwrite="true">

           <fileset dir="${basedir}/WebRoot" excludes="**/*.class" />

       </copy>

       <copy todir="${webApp}/WEB-INF/classes/" overwrite="true">

           <fileset dir="/${basedir}/deploy/classes/">

              <include name="**/*.class" />

           </fileset>

       </copy>

 

       <!--class文件打包,放到/WEB-INF/lib目录下-->

       <!--

       <jar destfile="${webApp}/WEB-INF/lib/test.jar">

           <fileset dir="/${basedir}/deploy/classes">

              <include name="**/*.class" />

           </fileset>

       </jar>

       -->

       <war destfile="/${basedir}/deploy/${webname}.war">

           <fileset dir="/${basedir}/deploy/war">

           </fileset>

       </war>

    </target>

   

</project>

 

 

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

相关推荐

    ANT Build.xml 自动编译 part3

    ANT Build.xml 自动编译

    ANT Build.xml 自动编译 part2

    ANT Build.xml 自动编译

    ant编译java web工程build.xml配置文件

    介绍了如何通过ant进行java web工程的编译操作的详细配置

    一个常用的ant的build.xml

    NULL 博文链接:https://kanpiaoxue.iteye.com/blog/1995837

    ant打包的build.xml文件

    一个普通java程序用ant打包的列子,完整的,里面采用的是eclipse自带的编译插件进行的打包,需要结合eclipse中的插件一起使用

    ant build.xml

    经过几天学习,总结出ant build.xml的基本版,实现了: &lt;!--初始化操作--&gt; &lt;!--拷贝操作--&gt; &lt;!--编译--&gt; &lt;!--war打包--&gt; 执行顺序为: &lt;!--project的default属性为build,所以本target...

    ant编译java web的build.xml文件

    NULL 博文链接:https://yizhenn.iteye.com/blog/2085063

    Java build.xml打包文件

    java项目打包build.xml文件 ant打包

    build.xml-Andorid ant一键多渠道编译

    用aapt生成R.java 2.JAVAC编译JAVA文件 3.批处理生成classes.dex 4.aapt打包资源 5.apkbuilder包资源和类文件为APK文件 6.jarsinger 对APK进行签名--&gt; basedir=$(cd "$(dirname "$0")";...

    Ant build.xml详解

    ant是一个非常不错的编译工具,而且是存java编写的,本资源详细的介绍了ant build。xml文件的各个属性,初学者的必备宝典,开发者的参考资料,好的话,别忘了给我评论一下哦。

    Jmeter+ant编译文件build.xml

    ant运行jmeter脚本的build.xml文件

    ant工具 build.xml 中文注释

    java自动批处理编译工具ant.对于初学者来说build.xml文件很头疼。我们公司做ant培训。我特此写的一些资料。 供大家学习之用。文件是个.xml 文件.吧文件名中的中文去掉就能直接用。也可以用编辑工具直接打开了看。

    用ant编译J2ME代码的build.xml模板

    用ant编译J2ME代码的build.xml模板。该模板在本人项目中应用,测试通过。你的项目中只要修改Conf.properties中的变量路径和GEN.properties中的入口类名即可。

    Ant之build.xml详解

    可能有些读者并不连接什么是Ant以及入可使用它...像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,用样也是基于这些缺陷对Ant做了更好的设计。

    ant -buid.xml打包部署文件

    ant 编译、打包、部署项目的build文件

    uibuild.xml

    ant编译,Uiautomator需要添加第三方库的uibuild.xml

    将项目打成jar包

    编译:将*.java文件打包成*.class文件 打包:将编译后的*.calss文件打包成 jar或war包; 部署:将打包后的war文件部署到制定的web应用服务器中去。(tomcat的webappers中去) ******************************* ant...

    将项目打成war包

    编译:将*.java文件打包成*.class文件 打包:将编译后的*.calss文件打包成 jar或war包; 部署:将打包后的war文件部署到制定的web应用服务器中去。(tomcat的webappers中去) ******************************* ant...

    Ant的最完整的build.xml解释

    ant入门教程,ant是一个很好用的工具,能方便地进行程序的编译、测试、部署等,简单易学。

    Ant_的最完整build.xml解释

    Ant的概念 Make命令是一个项目管理工具,而Ant...像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,用样也是基于这些缺陷对Ant做了更好的设计。

Global site tag (gtag.js) - Google Analytics