使用Ant构建struts2 web工程,自动编译,打包成war

简介:

、首先定义一些变量,如下,个人感觉有点类似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。


本文转自风一样的码农博客园博客,原文链接:http://www.cnblogs.com/chenpi/p/5128226.html,如需转载请自行联系原作者


相关文章
|
12天前
|
前端开发 安全 JavaScript
构建高效Web应用的五个关键步骤
【9月更文挑战第21天】本文将引导读者通过五个核心步骤来构建一个高效的Web应用。我们将从选择合适的技术栈开始,到实现响应式设计、优化性能、保证安全性,最后确保可维护性和扩展性。每个步骤都配备了具体的代码示例,帮助理解如何在实践中应用这些概念。
|
5天前
|
Web App开发 JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的深度整合
【9月更文挑战第28天】在现代Web开发领域,Node.js和Express框架的结合已成为打造高性能、易扩展应用的黄金组合。本文将深入探讨如何利用这一技术栈优化Web应用架构,提供具体实践指导,并分析其性能提升的内在机制。通过代码示例,我们将展示从基础搭建到高级功能的实现过程,旨在为开发者提供一条清晰的学习路径,以实现技术升级和项目效率的双重提升。
16 3
|
12天前
|
SQL 缓存 数据库
构建高效Web应用:掌握Python中的ORM映射技术
在Web开发中,数据库操作至关重要,但直接编写SQL语句会增加代码复杂度并降低效率。对象关系映射(ORM)技术通过将对象模型映射为数据库表,使开发者能以面向对象的方式处理数据,提升开发效率和代码可维护性。本文以Python和SQLAlchemy为例,介绍ORM的基本概念、安装方法及使用技巧,并展示其在提升Web应用性能方面的优势。通过ORM,开发者可以简化数据库操作,专注于业务逻辑实现,提高开发效率和代码质量。
35 1
|
20天前
|
存储 JSON 数据库
使用Flask构建简单的Web应用
使用Flask构建简单的Web应用
34 3
|
4天前
|
JSON JavaScript 前端开发
构建高效Web应用:Node.js与Express框架的完美结合
【9月更文挑战第28天】在现代Web开发中,Node.js和Express框架的结合为创建高性能、易扩展的应用提供了强有力的支持。本文将深入探讨如何利用这两种技术构建一个简单但功能强大的Web服务,同时提供代码示例以加深理解。
|
8天前
|
Web App开发 编解码 前端开发
构建响应式Web应用的最佳实践
构建响应式Web应用的最佳实践
17 0
|
19天前
|
数据处理 Python
Django视图:构建动态Web页面的核心技术
Django视图:构建动态Web页面的核心技术
|
1月前
|
数据库 开发者 Python
web应用开发
【9月更文挑战第1天】web应用开发
38 1
|
20天前
|
数据可视化 图形学 UED
只需四步,轻松开发三维模型Web应用
为了让用户更方便地应用三维模型,阿里云DataV提供了一套完整的三维模型Web模型开发方案,包括三维模型托管、应用开发、交互开发、应用分发等完整功能。只需69.3元/年,就能体验三维模型Web应用开发功能!
41 8
只需四步,轻松开发三维模型Web应用
|
11天前
|
安全 API 开发者
Web 开发新风尚!Python RESTful API 设计与实现,让你的接口更懂开发者心!
在当前的Web开发中,Python因能构建高效简洁的RESTful API而备受青睐,大大提升了开发效率和用户体验。本文将介绍RESTful API的基本原则及其在Python中的实现方法。以Flask为例,演示了如何通过不同的HTTP方法(如GET、POST、PUT、DELETE)来创建、读取、更新和删除用户信息。此示例还包括了基本的路由设置及操作,为开发者提供了清晰的API交互指南。
44 6
下一篇
无影云桌面