`

Ant编译项目一例,eclipse下,有svn代码管理。

阅读更多

myprj-build.properties:

build.home=./build
dist.home=./dist

app.name=myprj

junit.report.dir=./report/junit
coverage.report.dir=./report/coverage
myprj.lib.dir=./WEB-INF/lib
myprj.libtest.dir=./WEB-INF/libtest
findbugs.home=C:/findbugs-1.2.1
tomcat.home=D:/apache-tomcat-5.5.27

 

myprj-build.xml

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

<project name="myprj" basedir="." default="war">

    <property file="myprj-build.properties"/>
    <!--
    <taskdef resource="checkstyletask.properties"
         classpath="${myprj.libtest.dir}/checkstyle-all-4.3.jar" />
    <taskdef resource="djunittasks.properties"
        classpath="${myprj.libtest.dir}/djunit.jar" />
    -->
    <path id="class.path">
        <fileset dir="${myprj.lib.dir}">
            <include name="**/*.jar"/>
        </fileset>
        <!--
        <fileset dir="${myprj.libtest.dir}">
            <include name="**/*.jar"/>
        </fileset>
        -->
    </path>

    <!--=============== clean ===============-->
    <target name="prepare">
        <mkdir dir="${build.home}"/>
        <mkdir dir="${dist.home}"/>
    </target>

    <!--=============== clean ===============-->
    <target name="clean" depends="clean-build, clean-dist">
    </target>

    <!--=============== clean-build ===============-->
    <target name="clean-build">
        <delete dir="${build.home}"/>
    </target>

    <!--=============== clean-dist ===============-->
    <target name="clean-dist">
        <delete dir="${dist.home}"/>
    </target>

    <!--=============== compile ===============-->
    <target name="compile" depends="prepare">

        <mkdir dir="${build.home}/WEB-INF/classes"/>

        <copy todir="${build.home}" includeEmptyDirs="false" flatten="false">
            <fileset dir="." excludes="build/**,**/*.scc,WEB-INF/lib/servlet-api.jar,WEB-INF/lib/jsp-api.jar,WEB-INF/src/**,WEB-INF/srctest/**,WEB-INF/libtest/**,*.bat,*build*.xml,*build*.properties,.classpath,.project,docs/**,work/**,.checkstyle,.djunitplugin,.tomcatplugin,.fbprefs,.settings/**"/>
        </copy>
        <copy todir="${build.home}/WEB-INF/classes" includeEmptyDirs="false" flatten="false">
            <fileset dir="WEB-INF/src" excludes="**/*.scc, **/*.java, **/DaoContext.xml, **/ddl.txt"/>
        </copy>

        <javac srcdir="./WEB-INF/src"
              destdir="${build.home}/WEB-INF/classes"
                debug="on"
              target="1.6"
              source="1.6"
              encoding="UTF-8"
             optimize="true">
          <classpath refid="class.path"/>
        </javac>
    </target>

    <!--=============== war ===============-->
    <target name="war" depends="clean-dist, compile">
        <war destfile="${dist.home}/${app.name}.war" webxml="./WEB-INF/web.xml">
          <fileset dir="${build.home}"/>
        </war>
    </target>

    <!--=============== deploy ===============-->
    <target name="deploy" depends="war">
        <copy file="${build.home}/${app.name}.war" todir="${tomcat.home}/webapps"/>
    </target>

    <!--=============== undeploy ===============-->
    <target name="undeploy" depends="war">
        <delete file="${tomcat.home}/webapps/${app.name}.war"/>
        <delete dir="${tomcat.home}/webapps/${app.name}"/>
    </target>

    <!--=============== source ===============-->
    <target name="pkg-src">
        <jar destfile="${dist.home}/${app.name}-src.jar">
            <fileset dir="./WEB-INF/src" excludes="**/*.scc, **/ddl.txt, **/DaoContext.xml"/>
        </jar>
    </target>
    <!--=============== dist ===============-->
    <target name="dist" depends="war, pkg-src"/>


    <!--=============== compile-test ===============-->
    <target name="compile-test" depends="compile">

        <mkdir dir="${build.home}/WEB-INF/classes-test"/>

<!--
        <copy todir="${build.home}" includeEmptyDirs="false" flatten="false">
            <fileset dir="." excludes="build/**, **/*.scc, WEB-INF/lib/servlet-api.jar, WEB-INF/lib/jsp-api.jar, WEB-INF/src/**, WEB-INF/srctest/**, WEB-INF/libtest/**, *.bat, *build*.xml, *build*.properties, .classpath, .project, docs/**"/>
        </copy>
        <copy todir="${build.home}/WEB-INF/classes" includeEmptyDirs="false" flatten="false">
            <fileset dir="WEB-INF/src" excludes="**/*.scc, **/*.java, **/DaoContext.xml, **/ddl.txt"/>
        </copy>
-->
        <javac srcdir="./WEB-INF/srctest"
              destdir="${build.home}/WEB-INF/classes-test"
                debug="off"
               target="1.6"
               source="1.6"
             encoding="UTF-8"
             optimize="true">
          <classpath refid="class.path"/>
          <classpath path="${build.home}/WEB-INF/classes"/>
        </javac>
    </target>

    <!--=============== test ===============-->
    <target name="djunit.test" depends="compile-test">
        <delete dir="${junit.report.dir}"/>
        <mkdir dir="${junit.report.dir}"/>

        <djunit printsummary="yes" targetsrcdir="./WEB-INF/src" virtualmock="yes" coverage="yes">
            <jvmarg value="-Djp.co.dgic.eclipse.classloader.bytecodelibrary=BCEL"/>
            <classpath refid="class.path"/>
            <classpath path="${build.home}/WEB-INF/classes"/>
            <formatter type="xml"/>
            <batchtest todir="${junit.report.dir}">
                <fileset dir="${build.home}/WEB-INF/classes-test">
                    <include name="**/*Test.class"/>
                </fileset>
            </batchtest>
        </djunit>
        <junitreport>
            <fileset dir="${junit.report.dir}">
                <include name="TEST-*.xml"/>
            </fileset>
            <report format="frames" todir="${junit.report.dir}"/>
        </junitreport>
    </target>

    <!--=============== djUnit Coverage Report ===============-->
    <target name="djunit.report" depends="djunit.test">
        <delete dir="${coverage.report.dir}"/>
        <mkdir dir="${coverage.report.dir}"/>

        <djunit-coverage-report serFile="./jcoverage.ser" srcdir="./WEB-INF/srctest" destdir="${coverage.report.dir}">
            <classpath refid="class.path"/>
            <classpath path="${build.home}/WEB-INF/classes"/>
        </djunit-coverage-report>
    </target>

    <!--=============== CheckStyle ===============-->
    <target name="checkstyle"
            description="Generates a report of code convention violations.">

        <checkstyle config="docs/myprj_CheckStyle.xml"
                  failureProperty="checkstyle.failure"
                  failOnViolation="false">
            <formatter type="xml" tofile="checkstyle_report.xml"/>
            <fileset dir="./WEB-INF/src" includes="**/*.java"/>
      </checkstyle>

      <style in="checkstyle_report.xml" out="checkstyle_report.html" style="docs/checkstyle.xsl"/>

    </target>

    <!-- run this target as part of automated build -->
    <target name="checkstyle-nightly"
            depends="checkstyle"
            if="checkstyle.failure"
            description="Sends email if checkstyle detected code conventions violations.">

      <!-- use your own server and email addresses below. See Ant documentation for details -->

      <mail from="qa@some.domain"
            tolist="someone@some.domain,someoneelse@some.domain"
            mailhost="mailbox.some.domain"
            subject="Checkstyle violation(s) in project ${ant.project.name}"
            files="checkstyle_report.html"/>

    </target>

    <!--=============== FindBugs ===============-->
    <!--
    <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>

    <target name="findbugs" depends="compile">
        <findbugs home="${findbugs.home}"
                  output="xml"
                  outputFile="bcel-fb.xml" >
          <auxClasspath path="${basedir}/lib/Regex.jar" />
          <sourcePath path="${basedir}/WEB-INF/src" />
          <class location="${basedir}/WEB-INF/libtest/bcel-5.2.jar" />
        </findbugs>
    </target>
    -->
</project>

在eclipse里,直接运行run as ant build就可以,生成build和dist文件夹:

 

 

Buildfile: D:\workspace_myprj_3.2\myprj\myprj-build-default.xml
clean-dist:
prepare:
    [mkdir] Created dir: D:\workspace_myprj_3.2\myprj\build
    [mkdir] Created dir: D:\workspace_myprj_3.2\myprj\dist
compile:
    [mkdir] Created dir: D:\workspace_myprj_3.2\myprj\build\WEB-INF\classes
     [copy] Copying 4317 files to D:\workspace_myprj_3.2\myprj\build
war:
      [war] Building war: D:\workspace_myprj_3.2\myprj\dist\myprj.war
      [war] Warning: selected war files include a WEB-INF/web.xml which will be ignored (please use webxml attribute to war task)
BUILD SUCCESSFUL
Total time: 3 minutes 50 seconds

分享到:
评论

相关推荐

    自动获取SVN代码并编译代码 以及自动部署方案

    标题和描述提到的"自动获取SVN代码并编译代码 以及自动部署方案"是一种高效的工作流,它整合了版本控制、编译和部署三个重要环节,使得开发团队能够快速响应变更,减少手动操作带来的错误。以下是关于这个主题的详细...

    eclipse-SVN插件

    Eclipse SVN插件是开发人员在使用Eclipse IDE时用于版本控制的重要工具,它与Subversion(SVN)系统紧密集成,使得代码的版本管理和协同工作变得更加便捷。Subversion是一种开源的版本控制系统,用于跟踪文件和目录...

    ECLIPSE下的SVN插件URL(无需svn connector)

    Subversion (SVN) 是一款开源的集中式版本控制系统,广泛应用于软件项目的源代码管理。它允许开发者们保存项目历史记录,从而可以回溯到任何时间点的代码状态。而在 Eclipse IDE 中集成 SVN 功能,能够极大地提升...

    SVN+ant 服务器代码打包编译流程详解,内含详细安装以及操作说明

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理和跟踪项目源代码的变更。Ant是Apache组织开发的一个Java构建工具,它提供了通过XML格式的构建文件(build.xml)来自动化软件构建过程的能力。在这个SVN+...

    eclipse下切换svn用户

    ### Eclipse 下切换 SVN 用户的方法详解 #### 背景介绍 Eclipse 是一款非常流行的开源集成开发环境(IDE),广泛应用于 Java 开发领域。而 Subversion(SVN)作为版本控制系统之一,在软件开发过程中扮演着重要的...

    ant 脚本从svn上取代码打包代码全,同时包括相关的jar包

    在给定的场景中,"ant 脚本从svn上取代码打包代码全,同时包括相关的jar包",这意味着我们需要了解如何用Ant配合Subversion(SVN)进行代码管理,并打包项目,同时处理依赖的jar文件。 首先,让我们来看看Ant脚本的...

    svn 64 用于eclipse

    Eclipse通过安装SVN插件,如Subversive或Subclipse,可以实现与SVN服务器的无缝对接,为开发者提供一个直观的界面来管理他们的源代码版本。 以下是关于在Eclipse中使用64位SVN的详细步骤和相关知识点: 1. **安装...

    eclipse里配置svn

    本文将详细讲解如何在集成开发环境Eclipse中配置 SVN,以实现代码的版本管理和团队协作。 首先,我们需要确保已经安装了Eclipse IDE。Eclipse是一款功能强大的开源Java开发工具,但它同样支持多种语言的开发。为了...

    eclipse中利用svn创建、合并、切换分支

    ### Eclipse中利用SVN进行分支管理 #### 一、创建分支 在Eclipse中通过Subversion (SVN) 创建分支是一种常见的版本控制操作。以下是具体的步骤: 1. **选择项目**: - 在Eclipse中打开您的项目。 - 右键点击您...

    在Eclipse下使用SVN-CC-GIT-VSS-CVS代码管理工具最终修订版详细说明书

    在IT行业中,代码管理是软件开发过程中的关键环节,它确保了团队成员间代码的...通过阅读《在Eclipse下使用SVN-CC-GIT-VSS-CVS代码管理工具说明书.pdf》文档,可以获得更详细的步骤和技巧,更好地掌握这些工具的使用。

    svn1.1.9集合eclipse插件包

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理软件项目的源代码和其他文件的历史记录,允许团队成员协作开发,同时保持文件的版本控制。Eclipse是一款强大的集成开发环境(IDE),支持多种编程语言,如...

    SVN代码管理工具

    SVN(Subversion)是一种广泛使用的版本控制系统,用于管理和跟踪项目源代码的变更。它允许开发者在多人协作的环境中工作,记录每一次修改,方便回溯、合并和分支管理。下面将详细阐述SVN的核心概念、功能及如何在...

    eclipse离线按照svn插件

    SVN(Subversion)是一种版本控制系统,用于管理代码版本,便于多人协作开发。在没有网络连接的情况下,Eclipse离线安装SVN插件是开发者们常面临的问题。以下将详细介绍如何在Eclipse中离线安装SVN插件。 首先,...

    eclipse中svn插件的使用

    总之,通过在Eclipse中集成SVN插件,开发者能够高效地进行代码版本控制,促进团队间的协作,解决代码冲突,以及轻松管理项目的历史版本。这一系列操作不仅提升了开发效率,还保证了代码的质量和安全性。

    eclipse svn1.8插件下载

    Eclipse SVN 1.8 插件是专为Eclipse集成开发环境设计的一款版本控制系统工具,主要用于协同开发和代码管理。Subversion(简称SVN)是一个开源的版本控制系统,允许团队成员在一个共享仓库中存储、管理和跟踪代码变更...

    手把手教你在Eclipse上用SVN

    本文将详细讲解如何在Eclipse集成开发环境中安装和使用SVN插件,以便于团队成员协同开发和管理代码。 首先,我们需要安装Eclipse IDE。以Eclipse Helios为例,这是一个解压缩即用的版本,只需将下载的文件解压,...

    eclipse 4.6 neno SVN插件包

    SVN(Subversion)是一种版本控制系统,用于管理软件项目中的源代码和其他文件,使得多人协作开发变得可能。 在"eclipse 4.6 neno SVN插件包"中,我们主要关注的是如何在Eclipse Neon中集成和使用SVN功能。以下是...

    ant打包的代码,包括从svn上获取代码

    在实际应用中,`build.xml`文件会包含一系列Ant任务,比如`svnCheckout`来从SVN检出代码,`javac`来编译Java源码,`junit`来运行测试,以及`jar`或`war`来打包应用。这些任务可以通过Ant的条件语句和循环结构进行...

    Eclipse svn创建分支、合并、切换讲解

    Eclipse SVN 是一个功能强大的版本控制系统,广泛应用于软件开发项目中。本文将详细讲解 Eclipse SVN 中创建分支、合并、切换的操作步骤。 一、创建分支 创建分支是 SVN 中的一种重要操作,通过创建分支,可以让多...

    Eclipse svn1.9离线包下载

    在日常开发中,通过Eclipse SVN插件,开发者可以轻松地管理代码版本,协同团队成员工作,保持代码的整洁和一致性,提升开发效率。同时,Eclipse SVN 1.9离线包的提供,避免了网络环境不佳时在线安装的困扰,使得...

Global site tag (gtag.js) - Google Analytics