zoukankan      html  css  js  c++  java
  • 使用Ant构建struts2 web工程,自动编译,打包成war

    c&c++语言通常使用make脚本来构建和管理自己的工程,同样java也有自己的构建工具(Ant),使用时需要写一个biuld.xml,有点类似c&c++里的makefile。

    、首先定义一些变量,如下,个人感觉有点类似makefile的写法

    #==================== File and Directory Names ========================
    
    app.name=AntDemo
    app.version=0.1
    
    source.home=./src
    lib.home=./WebContent/WEB-INF/lib
    lib.external=./lib_external
    webapp.home=./WebContent
    build.home=./build
    dist.home=./dist
    
    #==================== Compilation Control Options =====================
    
    compile.debug=true
    compile.deprecation=false
    compile.optimize=true

    二、然后写几个target

    一般就clean,init,Compile,Build,Archive,具体如下

    <?xml version="1.0"?>
    
    
    <!-- ====================================================================== 
         Date:     June 2015
         
         Project:  Ant Demo
         
         Author:   Peter Chen
         ====================================================================== -->
    
    
        
    <project name="AntDemo" default="archive" basedir=".">
        
        <description>
               a project of using ant
        </description>
        
        <property file="build.properties"/>
    
        <!-- ==================== Clean Target ==================================== -->
    
        <!--
            删除之前工程构建时产生的临时文件
        -->
        <target name="clean" description="Delete old directories and files">
            <delete dir="${dist.home}"/>
            <delete dir="${build.home}"/>
            <delete >
                <fileset dir="${source.home}" includes="**/*.class"/>
            </delete>
        </target>
    
        <!-- ==================== Init Target ================================== -->
    
        <!--
            新建build文件夹
        -->
        <target name="init" depends="clean"  description="Create build directory">
            
            <mkdir dir="${build.home}" />
    
        </target>
        
        <!-- ==================== Compile Target ================================== -->
    
        <!--
            编译源代码,将编译生成的class文件copy到${build.home}/WEB-INF/classes目录下
        -->
        <target name="compile" depends="init" description="Compile Java sources">
            
            
            <mkdir dir="${build.home}/WEB-INF/classes" />
            
            <javac srcdir="${source.home}"
                   destdir="${build.home}/WEB-INF/classes"
                   debug="${compile.debug}"
                   deprecation="${compile.deprecation}"
                   optimize="${compile.optimize}"
                   source="1.7" target="1.7" includeantruntime="on">
                
                <classpath>
                    <path>
                        <fileset dir="${lib.home}" />
                        <fileset dir="${lib.external}" />
                    </path>
                </classpath>
            </javac>
    
        </target>
        
        <!-- ==================== Build Target ================================== -->
    
        <!--
            把非class文件拷贝到build目录下
        -->
        
        <target name="build" depends="compile" description="Copies all non Java classes to build directoy">
            <copy todir="${build.home}">
                <fileset dir="${webapp.home}" excludes="SVN,**/*.class" />
            </copy>
            <copy todir="${build.home}/WEB-INF/classes">
                <fileset dir="${source.home}" excludes="SVN,**/*.java" />
            </copy>
        </target>
        
        <!-- ==================== Archive Target ================================== -->
    
        <!--
             打包成war文件
        -->
    
        <target name="archive" depends="build" description="Create binary archive of all files in dist.home">
            
            <!-- Create war directory -->
            <mkdir dir="${dist.home}" />
            
            <!-- Create application WAR file -->
            <jar jarfile="${dist.home}/${app.name}.war" basedir="${build.home}" />
    
        </target>    
    
    </project>

    三、最后直接运行target即可

    贴上demo的github地址:https://github.com/peterchenhdu/AntDemo/

    有兴趣的可以下载下来看看,一个基于struts2的web工程,使用ant自动编译打包成war。


  • 相关阅读:
    MySql状态查看方法 MySql如何查看连接数和状态?
    MySQL连接数超过限制的解决方法
    JS正则表达式获取分组内容实例
    jquery data方法获取某个元素上事件
    javascript浮点数转换成整数三种方法
    ThinkPHP CURD方法中field方法详解
    python3.3使用tkinter实现猜数字游戏代码
    Expo大作战(二十四)--expo sdk api之Accelerometer
    Expo大作战(二十三)--expo中expo kit 高级属性(没干货)
    Expo大作战(二十二)--expo分离后的部署(expokit)
  • 原文地址:https://www.cnblogs.com/chenpi/p/5128226.html
Copyright © 2011-2022 走看看