`
garyli
  • 浏览: 176083 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ant 获取svn工程并编译

    博客分类:
  • java
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<!-- ====================================================================== 
     2008-8-4 下午05:39:58                                                        

     test-hibernate3    
     description
                   
     user                                                                
     ====================================================================== -->
<project name="test-hibernate3" default="usage">
	<description>
            description
    </description>


	<property name="project.name" value="test-hibernate3" />
	<property name="war.name" value="HBDemo" />
	<property name="project.author" value="ShenLi" />
	<property name="project.version" value="1.0" />

	<!--
    	      系统目录定义
    	    -->
	<property file="build.properties" />

	<property name="release.dir" value="./release" />
	<property name="web.dir" value="./src_latest/WebContent" />
	<property name="src.dir" value="./src_latest/src/main/" />
	<property name="resources.dir" value="./src_latest/src/resource/" />
	<property name="lib.dir" value="${web.dir}/WEB-INF/lib" />
	<property name="servlet.lib.dir" value="${catalina.dir}/lib" />
	<property name="build.dir" value="${web.dir}/WEB-INF/classes" />
	<property name="server.deploy" value="${catalina.dir}/webapps" />


	<property name="test.dir" value="./test/" />
	<property name="test.resources" value="${test.dir}/resources/" />
	<property name="unit_test.src" value="${test.dir}/unit/" />
	<property name="functional_test.src" value="${test.dir}/functional/" />
	<property name="test.lib.dir" value="${test.dir}/lib" />
	<property name="target.dir" value="./target" />
	<property name="test.build" value="${target.dir}/test/classes" />
	<property name="functional_test.build" value="${target.dir}/test/fun_classes" />
	<property name="test.data" value="${target.dir}/test/unit_data" />
	<property name="functional_test.data" value="${target.dir}/test/functional_data" />
	<property name="test.report" value="${target.dir}/test/unit_reports" />
	<property name="functional_test.report" value="${target.dir}/test/functional_reports" />
	<property name="junit.lib.dir" value="D:\\eclipse\\plugins\\org.junit4_4.3.1" />

	
	<path id="svnant.classpath">
	    <fileset dir="${svnant.lib.dir}">
	      <include name="**/*.jar"/>
	    </fileset>
	  </path>  
	  
	  <!-- load the svn task -->
	  <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" />
	  
	  <target name="clean">
	    <delete dir="src_latest"/>
	    <delete dir="src_${svnant.version}"/>  
	  	<delete dir="${build.dir}" />
	  	<delete dir="${release.dir}" />
	  	<delete dir="${target.dir}" />
	  </target>

	  <target name="checkoutLatest">
	    <svn username="${svnant.repository.user}" password="${svnant.repository.passwd}">
	      <checkout url="${svnant.latest.url}" revision="HEAD" destPath="src_latest" />
	    </svn>
	  </target>
	
	
	<tstamp>
		<format property="datestamp" pattern="yyyy-MM-dd" />
	</tstamp>

	<!-- 	定义Class Path 	-->
	<path id="compile.classpath">
		<pathelement path="${jsdk_jar}" />
		<fileset dir="${lib.dir}">
			<include name="**/*.jar" />
		</fileset>
		<fileset dir="${servlet.lib.dir}">
			<include name="**/*.jar" />
		</fileset>
	</path>

	<path id="test.classpath">
		<path refid="compile.classpath" />
		<path location="${build.dir}" />
		<fileset dir="${junit.lib.dir}">
			<include name="**/*.jar" />
		</fileset>
		<fileset dir="${test.lib.dir}">
			<include name="**/*.jar" />
		</fileset>
	</path>

	<!-- 	编译选项 	-->
	<property name="compiler.args" value="-encoding UTF-8" />

	<patternset id="compiler.resources">
		<include name="**/?*.properties" />
		<include name="**/?*.script" />
		<include name="**/?*.groovy" />
		<include name="**/?*.drl" />
		<include name="**/?*.ftl" />
		<include name="**/?*.dsl" />
		<include name="**/?*.xml" />
		<include name="**/?*.html" />
		<include name="**/?*.dtd" />
		<include name="**/?*.tld" />
		<include name="**/?*.gif" />
		<include name="**/?*.png" />
		<include name="**/?*.jpeg" />
		<include name="**/?*.jpg" />
		<include name="**/?*.xsd" />
		<include name="**/?*.schemas" />
	</patternset>


	<!--  	初始化目录    -->
	<target name="init" depends="checkoutLatest">
		<mkdir dir="${build.dir}" />
		<mkdir dir="${release.dir}" />

		<!--<mkdir dir="${target.dir}" />
		<mkdir dir="${test.build}" />
		<mkdir dir="${functional_test.build}" />
		<mkdir dir="${test.data}" />
		<mkdir dir="${functional_test.data}" />
		<mkdir dir="${test.report}" />
		<mkdir dir="${functional_test.report}" />-->
	</target>

	<!--
	      编译Java文件并复制资源文件
	       -->
	<target name="compile.java" depends="init" description="编译Java文件并复制资源文件">


		<!--编译i-TEST Manager Java 文件-->
		<javac destdir="${build.dir}" fork="true" debug="true">
			<compilerarg line="${compiler.args}" />
			<classpath refid="compile.classpath" />
			<src path="${src.dir}" />
		</javac>

		<!--复制i-TEST Manager的资源文件到classes-->
		<copy todir="${build.dir}">
			<fileset dir="${src.dir}">
				<patternset refid="compiler.resources" />
			</fileset>
			<fileset dir="${resources.dir}">
				<patternset refid="compiler.resources" />
			</fileset>
		</copy>
	</target>
	
	<!--
	      生成war文件
	-->
	<target name="war" depends="compile.java" description="生成war文件">
		<property name="release.warfile" value="${release.dir}/${war.name}.war" />

		<!--复制到一个新的文件夹创建War-->
		<property name="temp.dir" value="${release.dir}/deploy" />

		<delete file="${release.warfile}" />

		<mkdir dir="${temp.dir}" />

		<copy todir="${temp.dir}">
			<fileset dir="${web.dir}" />
		</copy>

		<delete dir="${temp.dir}/WEB-INF/classes" />
		<mkdir dir="${temp.dir}/WEB-INF/classes" />
		<copy todir="${temp.dir}/WEB-INF/classes">
			<fileset dir="${web.dir}/WEB-INF/classes" />
		</copy>

		<war destfile="${release.warfile}" webxml="${temp.dir}/WEB-INF/web.xml" basedir="${temp.dir}" excludes="**/web.xml">
			<manifest>
				<attribute name="Author" value="${project.author}" />
				<section name="Shared">
					<attribute name="Vendor" value="${project.author}" />
					<attribute name="Version" value="${project.version}" />
					<attribute name="Date" value="${datestamp}" />
				</section>

				<section name="Copyright">
					<attribute name="Copy" value="(C) ${project.author} 2007" />
				</section>
			</manifest>
		</war>
		<delete dir="${temp.dir}" />
	</target>


	<!--
	   部署项目 到servers中的Tomcat
	    -->
	<target name="deploy" depends="fun.test.deploy" description="Deploy Project to serverr">
		<antcall target="tomcat.start" />
		<echo message="请访问http://${tomcat.server}:${tomcat.port}/${war.name}" />
	</target>

	<target name="fun.test.deploy" depends="war" description="功能测试发布,不启动Tomcat">
		<antcall target="tomcat.stop" />
		<delete dir="${server.deploy}/${war.name}" />
		<delete file="${server.deploy}/${war.name}.war" />
		<copy todir="${server.deploy}" file="${release.dir}/${war.name}.war" />
	</target>


	<!--
		 显示可选任务,并接受用户的选择
	-->
	<target name="usage">
		<echo message="${project.name} ${project.version}" />
		<echo message="------------------------------------------------------" />
		<echo message="" />
		<echo message="可选Target:" />
		<echo message="" />
		<echo message="deploy           --&gt; Deploy Project to server" />
		<echo message="compile          --&gt; 编译Java文件并复制资源文件" />
		<echo message="war              --&gt; 生成war文件" />
		<echo message="clean            --&gt; 清除环境" />
		<echo message="" />
		<input message="请选择一个Target" validargs="deploy,compile,war,clean" addproperty="ant.task" />
		<antcall target="${ant.task}" />
	</target>

</project>


对应的properties文件如下
JAVA_HOME=C:/Program Files/Java/jdk1.6.0
catalina.dir=C:/Program Files/Apache Software Foundation/Tomcat 6.0
tomcat.server=localhost
tomcat.port=8080

svnant.version=1.1.0-RC2

# -----------------------------------------------------------------------------
# all jar needed
# -----------------------------------------------------------------------------
svnant.lib.dir=D:/apache-ant-1.7.0/svnant-1.1.0-RC2/lib

svnant.latest.url=http://192.168.0.17:8060/svn/demo_projects/trunk/HibernateDemo
svnant.this.url=http://subclipse.tigris.org/svn/subclipse/tags/svnant/${svnant.version}/

svnant.repository.user=shenli
svnant.repository.passwd=garyli
分享到:
评论

相关推荐

    ant获取SVN版本信息的jar包xmltask以及安装,使用方法

    本主题聚焦于如何利用Ant与XMLTask jar包来获取SVN(Subversion)版本信息。下面将详细介绍这个过程以及相关知识点。 首先,了解Ant。Ant是一个基于Java的构建工具,它提供了跨平台的构建脚本能力,能够执行编译、...

    自动获取svn代码并且编译发布

    标题和描述中提到的“自动获取svn代码并且编译发布”是一种常见的持续集成(CI)实践,它涉及自动化从版本控制系统获取源代码、构建应用程序、并进行发布的过程。以下是这个流程涉及的关键知识点: 1. **Subversion ...

    Ant+Svn打包Web工程

    本主题将深入探讨如何结合Apache Ant和Subversion(Svn)来打包Web工程,这是一个常见的开发实践,尤其对于Java Web项目而言。首先,让我们理解这两个工具的核心概念。 **Apache Ant** 是一个Java库和命令行工具,...

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

    SVN帮助团队协作并追踪代码变更,而Ant则通过XML脚本实现了编译、打包等任务的自动化。通过合理配置build.xml和build.properties,你可以轻松定制符合项目需求的构建流程。对于初学者而言,理解这两个工具的原理和...

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

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

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

    在本项目中,Ant被用来执行自动化任务,包括从Subversion(SVN)版本控制系统中获取源代码,并对代码进行打包。 Subversion是一个开源的版本控制系统,用于管理软件项目的源代码。它允许开发人员在多个时间点保存...

    ant学习之集成svn

    4. 自动化工作流:结合Ant的其他任务,如编译、测试和打包,可以创建一个完整的自动化工作流,其中包括从SVN仓库获取最新代码,执行构建,然后如果一切顺利,将变更提交回去。 5. 错误处理和日志记录:确保在执行...

    ant+svn的测试框架

    标题中的“ant+svn”指的是在软件开发过程中使用Apache Ant工具和Subversion(SVN)版本控制系统进行构建和版本管理的组合。Ant是Java平台上的一种开源构建工具,它使用XML来描述构建过程,使得构建脚本易于理解和...

    antsvn更新打包部署提交自动化

    标题中的“antsvn更新打包部署提交自动化”涉及的是在软件开发过程中如何利用Ant(一个Java构建工具)和Subversion(SVN,版本控制系统)实现自动化的构建、更新、打包、部署和提交流程。这个过程旨在提高开发效率,...

    Ant & SVN task script

    Ant提供了大量的内置任务用来处理如编译源代码、运行单元测试、生成文档等常见的构建步骤。此外,Ant还支持自定义任务,这使得它能够满足各种复杂的构建需求。 ##### 3. 关键术语 - **Trunk(主干)**:指的是主要...

    CruiseControl + ANT +SVN

    在 CruiseControl 和 ANT 的环境中,SVN 监控源代码仓库,当开发者提交新代码时,CruiseControl 会检测到这些变化,并触发ANT进行构建。 使用 CruiseControl + ANT + SVN 的工作流程通常是这样的: 1. **代码提交*...

    Ant SVN依赖JAR包

    当使用Ant进行构建时,有时需要直接从SVN获取源码或依赖库,这时就需要配置Ant与SVN的集成,这就涉及到了"Ant SVN依赖JAR包"。 首先,要使Ant能够与SVN交互,我们需要在Ant的类路径中包含Subversion的Java绑定库...

    利用ant脚本 自动构建svn增量.docx

    - **获取代码**:首先,Ant脚本会从SVN仓库中检出或更新最新的代码到本地工作目录。 - **增量分析**:通过比较上一次构建与当前版本的差异,找出新增或修改的文件。 - **编译增量**:只编译自上次构建以来发生...

    Ant+Junit+Svn实现自动单元测试

    总结来说,Ant+JUnit+Svn的结合可以实现从版本控制仓库自动获取最新代码,编译项目,运行单元测试,生成测试报告,并在必要时发送邮件通知的完整自动化流程。这种自动化测试流程对于持续集成和提高开发效率具有重要...

    基于Jmeter+Ant+SVN+Jenkins实现接口自动化测试

    在接口自动化测试中,Ant可以帮助我们编译测试代码、打包测试套件,并将其部署到测试环境中。 2. **Ant应用**: - **编写build.xml文件**:定义构建任务,如编译、测试、打包、部署等。 - **调用JMeter进行测试**...

    ant svn插件jar包

    这个插件通常以jar包的形式存在,例如在给定的"antsvn"压缩包中。为了使用这个插件,你需要将jar包添加到Ant的类路径中。这样,你就可以在Ant构建文件中声明新的任务,比如`&lt;svn&gt;`,并配置相关属性来执行SVN命令。 ...

    ant相关-svn-分支

    描述中提到“如果你准备做air或是android的自动集成”,暗示了我们将讨论如何使用Ant来实现Adobe AIR或Android应用的持续集成,并结合SVN管理不同开发分支。Adobe AIR允许开发者创建跨平台的桌面和移动应用程序,而...

Global site tag (gtag.js) - Google Analytics