`

build.xml

    博客分类:
  • Ant
阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<project name="webService2" default="" basedir=".">
	<property environment="env" />
	<!-- 链接库目录 -->
	<property name="lib.dir" value="${basedir}/lib" />
	<!-- 工程目录 -->
	<property name="src" value="${basedir}/src" />
	<property name="test" value="${basedir}/test" />
	<!-- 工程编译目录 -->
	<property name="build.dir" value="${basedir}/build" />
	<property name="wsdl.dir" value="${basedir}/resources/META-INF" />
	<property name="wsdl.uri" value="${wsdl.dir}/BankWebService.wsdl" />
	<property name="service.target" value="build/service" />
	<property name="client.target" value="build/client" />
	<!-- Tomcat目录 -->
	<property name="tomcat.dir" value="/opt/javaworkspace/tomcat" />
	<property name="tomcatlib.dir" value="${tomcat.dir}/lib" />
	<!-- 测试编译目录 -->
	<property name="test.dir" value="${build.dir}/test" />
	<property name="report.dir" value="${build.dir}/Report" />
	<property name="junitreport.dir" value="${report.dir}/JunitReport" />
	<property name="finalreport.dir" value="${report.dir}/FinalReport" />
	<!-- 数据库 -->
	<property file="${basedir}/config/datasource.properties" />
	<property name="changelog" value="${basedir}/database/database.changelog.xml" />

	<!-- ant-contrib.jar -->
	<taskdef resource="net/sf/antcontrib/antlib.xml">
		<classpath>
			<pathelement location="${tomcatlib.dir}/ant-contrib-0.6.jar" />
		</classpath>
	</taskdef>

	<!-- 链接库(jar;class文件) -->
	<path id="base.classpath">
		<fileset dir="${lib.dir}">
			<include name="**/*.jar" />
		</fileset>
		<fileset dir="${tomcatlib.dir}">
			<include name="**/*.jar" />
		</fileset>
	</path>

	<!-- 清理 -->
	<target name="clean">
		<delete dir="${build.dir}" />
		<delete dir="${basedir}/../tomcat/webapps/axis2/WEB-INF/classes/com" />
		<delete file="${basedir}/../tomcat/webapps/axis2/WEB-INF/services/BankWebService.aar" />
		<delete file="${basedir}/lib/userservice.jar" />
		<delete file="${basedir}/resources/META-INF/UserServiceImpl.wsdl" />
		<delete file="${basedir}/../tomcat/webapps/axis2/WEB-INF/lib/BankWebService.jar" />
	</target>

	<!-- 创建目录,拷贝文件 -->
	<target name="init" depends="clean">
		<mkdir dir="${build.dir}" />
		<mkdir dir="${report.dir}" />
		<mkdir dir="${test.dir}" />
		<mkdir dir="${report.dir}" />
		<mkdir dir="${junitreport.dir}" />
		<mkdir dir="${finalreport.dir}" />
		<mkdir dir="${service.target}/classes" />
		<copy todir="${service.target}/classes">
			<fileset dir="${basedir}/config">
				<include name="*.xml" />
				<include name="*.properties" />
			</fileset>
		</copy>
		<copy todir="${test.dir}">
			<fileset dir="${basedir}/config">
				<include name="*.xml" />
				<include name="*.properties" />
			</fileset>
		</copy>
	</target>

	<!-- 编译service -->
	<target name="compile.service" depends="init">
		<javac debug="on" fork="true" destdir="${service.target}/classes" srcdir="${basedir}/src" classpathref="base.classpath">
		</javac>
		<copy todir="${service.target}/classes/com/goodhope/pojo">
			<fileset dir="${basedir}/src/com/goodhope/pojo">
				<include name="*.xml" />
			</fileset>
		</copy>
	</target>

	<!-- 编译test -->
	<target name="compile.test" depends="compile.service">
		<javac srcdir="${test}" destdir="${test.dir}">
			<classpath path="${service.target}/classes" />
			<classpath refid="base.classpath" />
		</javac>
	</target>

	<!-- 单元测试-生成单元测试报告 -->
	<target name="junit.test" depends="compile.test">
		<junit printsummary="on" fork="true" haltonfailure="false" failureproperty="tests.failed" showoutput="true">
			<classpath>
				<pathelement location="${test.dir}" />
				<pathelement location="${service.target}/classes" />
				<path refid="base.classpath" />
			</classpath>
			<formatter type="xml" />
			<batchtest todir="${junitreport.dir}" fork="true">
				<fileset dir="${test.dir}">
					<include name="**/*Test.*" />
				</fileset>
			</batchtest>
		</junit>
		<junitreport todir="${junitreport.dir}">
			<fileset dir="${junitreport.dir}">
				<include name="TEST-*.xml" />
			</fileset>
			<report format="frames" todir="${junitreport.dir}" />
		</junitreport>
		<fail if="tests.failed">
		</fail>
	</target>

	<!-- 将Service打成 jar包 -->
	<target name="tojar" depends="junit.test">
		<jar destfile="${service.target}/BankWebService.jar">
			<fileset dir="${service.target}/classes">
				<exclude name="*.xml" />
				<exclude name="*.properties" />
			</fileset>
		</jar>
	</target>

	<!-- 拷贝jar文件 -->
	<target name="copy.jar.file" depends="tojar">
		<copy file="${service.target}/BankWebService.jar" toDir="${basedir}/lib" overwrite="false" />
		<copy file="${service.target}/BankWebService.jar" toDir="${basedir}/../tomcat/webapps/axis2/WEB-INF/lib" overwrite="true" />
		<copy todir="${basedir}/../tomcat/webapps/axis2/WEB-INF/classes" overwrite="true">
			<fileset dir="${basedir}/config">
				<include name="*.xml" />
				<include name="*.properties" />
			</fileset>
		</copy>
		<copy todir="${basedir}/../tomcat/webapps/axis2/WEB-INF/lib" overwrite="false">
			<fileset dir="${basedir}/lib">
				<include name="*.jar" />
			</fileset>
		</copy>
	</target>

	<!-- 生成wsdl -->
	<target name="generate.wsdl" depends="copy.jar.file">
		<taskdef name="java2wsdl" classname="org.apache.ws.java2wsdl.Java2WSDLTask" classpathref="base.classpath" />
		<java2wsdl className="com.goodhope.webservice.BankWebService" outputLocation="${wsdl.dir}" targetNamespace="http://goodhope.com/" schemaTargetNamespace="http://goodhope.com/xsd" locationuri="http://localhost:8099/axis2/services/BankWebService">
			<classpath>
				<pathelement path="${base.classpath}" />
				<pathelement location="${service.target}/classes" />
			</classpath>
		</java2wsdl>
	</target>

	<!--生成 arr -->
	<target name="generate.arr" depends="generate.wsdl">
		<copy toDir="${service.target}/classes" failonerror="false">
			<fileset dir="${basedir}/resources">
				<include name="**/*.xml" />
			</fileset>
		</copy>
		<jar destfile="${service.target}/BankWebService.aar">
			<fileset dir="${service.target}/classes" />
		</jar>
	</target>

	<!-- 根据 wsdl生成 服务端代码 -->
	<target name="generate.service" depends="generate.arr">
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true" classpathref="base.classpath">
			<arg line="-uri ${wsdl.uri}" />
			<arg line="-s" />
			<arg line="-ss" />
			<arg line="-sd" />
			<arg line="-ssi" />
			<arg line="-ap" />
			<arg line="-ns2p http://goodhope.com/xsd=com.goodhope.webservice.xsd" />
			<arg line="-l java" />
			<arg line="-p com.goodhope.webservice" />
			<arg line="-d adb" />
			<arg line="-o ${build.dir}/service" />
		</java>
		<copy file="${basedir}/src/com/goodhope/webservice/BankWebService.java" toDir="${build.dir}/service/src/com/goodhope/webservice" overwrite="yes" />
		<copy file="${basedir}/resources/META-INF/services.xml" toDir="${build.dir}/service/resources/" overwrite="yes">
		</copy>
		<ant dir="${build.dir}/service">
			<property name="axis2.home" value="${basedir}" />
		</ant>
		<copy file="${service.target}/build/lib/BankWebService.aar" toDir="${basedir}/../repository/services" overwrite="yes" />
		<copy file="${service.target}/build/lib/BankWebService.aar" toDir="${basedir}/../tomcat/webapps/axis2/WEB-INF/services" overwrite="yes" />
	</target>

	<!-- 根据 wsdl生成 客户端代码 -->
	<target name="generate.client" depends="generate.arr">
		<delete dir="${client.target}" />
		<mkdir dir="${client.target}" />
		<java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true" classpathref="base.classpath">
			<arg line="-uri ${wsdl.uri}" />
			<arg line="-s" />
			<arg line="-ns2p http://goodhope.com/xsd=com.goodhope.webservice.xsd" />
			<arg line="-l java" />
			<arg line="-p com.goodhope.webservice" />
			<arg line="-d adb" />
			<arg line="-o ${build.dir}/client" />
		</java>
		<ant dir="${build.dir}/client">
			<property name="axis2.home" value="${basedir}" />
		</ant>
		<copy file="${service.target}/BankWebService.aar" toDir="${basedir}/../tomcat/webapps/axis2/WEB-INF/services" overwrite="yes" />
	</target>

	<!-- all -->
	<target name="all" depends="tomcat.stop,init,generate.client" />

	<!-- 启动 Tomcat -->
	<target name="tomcat.start">
		<ant antfile="${tomcat.dir}/tomcat-build.xml" target="tomcat.start" inheritall="false" />
	</target>

	<!-- 停止 Tomcat -->
	<target name="tomcat.stop">
		<ant antfile="${tomcat.dir}/tomcat-build.xml" target="tomcat.stop" inheritall="false" />
	</target>

	<!-- 刷数据库 -->
	<target name="update-database">
		<taskdef name="updateDatabase" classname="liquibase.ant.DatabaseUpdateTask" classpathref="base.classpath" />
		<updateDatabase changeLogFile="${changelog}" driver="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432/bank" username="goodhope" password="goodhope" dropFirst="true" classpathref="base.classpath" />
	</target>

	<!-- 配置文件 -->
	<taskdef resource="migratortasks.properties" classpathref="base.classpath" />

	<!-- 指定执行文件位置 -->
	<macrodef name="excuteScript">
		<attribute name="dir" />
		<attribute name="dropFirst" default="false" />
		<sequential>
			<migrateDatabase defaultschemaname="public" changeLogFile="@{dir}/script_suite.xml" driver="${dirver}" url="${url}" username="${username}" password="${password}" dropFirst="@{dropFirst}" classpathref="base.classpath" />
		</sequential>
	</macrodef>

	<!-- 删除数据库表,并重新建立数据表 -->
	<target name="fresh.bank.data" description="drop all table and rebuild schema">
		<excuteScript dir="${basedir}/database/script/before" dropFirst="true" />
		<excuteScript dir="${basedir}/database/script/create_table" />
		<excuteScript dir="${basedir}/database/data" />
	</target>
</project>
分享到:
评论

相关推荐

    ant的build.xml模板

    《Ant的build.xml模板详解与应用》 在软件开发领域,构建工具是不可或缺的一部分,它帮助开发者自动化地完成编译、测试、打包等任务。Apache Ant作为Java领域的一款经典构建工具,以其灵活性和强大的功能深受广大...

    一个常用的ant的build.xml

    Ant是基于XML的,它的核心在于`build.xml`文件,这个文件是项目的构建脚本,详细定义了构建过程中的各种任务和依赖关系。 标题“一个常用的ant的build.xml”暗示了我们讨论的是一个标准且常见的Ant构建配置文件。...

    Java build.xml打包文件

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

    build.xml详解

    ### build.xml详解 #### 概述 `build.xml` 是 Apache Ant 构建工具的核心配置文件,用于自动化软件构建过程中的各种任务。本篇将基于提供的 `build.xml` 文件示例,详细介绍其结构、语法以及如何通过配置实现自动化...

    ant build.xml 详解

    《Ant build.xml详解——构建Java项目的关键》 Apache Ant,作为一个开源的自动化构建工具,是Java开发者不可或缺的利器。它的核心在于一个名为`build.xml`的配置文件,它定义了项目的构建过程,包括编译、测试、...

    Jmeter+ant实现测试报告build.xml和报告模板jmeter-results-newreport.xsl

    3. **build.xml文件详解**:`build.xml`是Ant的构建文件,其中包含了一系列的任务和目标。例如,你可以定义一个目标来启动JMeter,另一个目标来生成测试报告,甚至还有一个目标用来发送测试结果的邮件通知。在描述中...

    build.xml 手写自动生成Hibernate映射文件和配置文件源代码

    build.xml 手写自动生成Hibernate映射文件和配置文件源代码

    ant build.xml 使用实例

    Apache Ant 是一个广泛使用的Java构建工具,它以XML格式定义构建脚本,即`build.xml`文件。这个文件包含了构建项目的整个流程,从编译源代码到生成最终的可执行或部署包。下面我们将深入探讨`build.xml`的使用以及...

    项目build.xml文件

    本文将深入探讨“项目build.xml文件”,这是一个与Ant构建工具密切相关的文件,用于规范Java项目的构建过程。 Ant是Apache软件基金会的一个开源项目,它是一个基于Java的构建工具,类似于Unix下的Make工具,但更为...

    ant build.xml编写

    《Ant build.xml构建详解》 在软件开发过程中,构建工具起着至关重要的作用,它能够自动化执行编译、测试、打包等任务。Apache Ant是Java领域广泛应用的一个构建工具,其核心在于一个名为`build.xml`的配置文件。...

    ant编译java web的build.xml文件

    《Ant构建Java Web应用:深度解析build.xml》 在软件开发过程中,自动化构建工具起着至关重要的作用,它们能够帮助开发者高效地管理项目,确保代码的编译、测试和部署等流程的一致性和可靠性。Apache Ant是Java领域...

    jmeter+ant 持续集成build.xml文件

    jmeter+ant 持续集成build.xml文件,直接使用ant命令执行jmeter脚本文件,得到图形测试报告

    ant打包sdk中build.xml

    首先,我们要了解`build.xml`文件。它是Ant的核心文件,包含了构建过程的配置和指令。这个文件使用XML格式编写,定义了各种任务(targets),每个任务包含了具体的构建步骤。例如,`clean`任务用于清理项目输出,`...

    Ant_的最完整build.xml解释,Ant入门与进阶

    《Ant的最完整build.xml解释:Ant入门与进阶》 Ant,作为Java世界中的一个构建工具,由Apache软件基金会开发,是项目管理和自动化构建的重要工具。它通过XML定义的build.xml文件,来描述项目的构建过程,包括编译、...

    ant 较完整的build.xml解释

    ### ant 较完整的build.xml解释 #### 一、Ant简介及优势 Ant 是一款开源的构建工具,主要用于Java项目的构建和部署。与传统的构建工具如Make相比,Ant具有诸多优势,尤其是在跨平台方面表现突出。Ant的核心优势...

    ANT-build.xml命令详解

    **ANT-build.xml命令详解** Apache Ant 是一个Java平台上的开源构建工具,它通过XML格式的配置文件(如`build.xml`)来定义构建任务。Ant的设计理念是“简单就是美”,它使得Java项目的构建过程变得可配置且易于...

    ant的配置文件build.xml

    在Ant的世界中,`build.xml`是核心配置文件,它包含了项目构建的所有指令和任务。这篇内容将深入解析`build.xml`文件的结构、元素以及如何使用它来管理Java项目的构建过程。 一、`build.xml`文件结构 `build.xml`...

    ant build.xml文件详解

    Ant build.xml 文件详解 Ant 是一个项目管理工具,相比make命令,gnumake和nmake等编译工具,Ant克服了这些工具的缺陷。Ant 的优点包括跨平台性、操作简单、易于集成到开发环境中。Ant 的构建文件是 XML 格式的文件...

    build.xml文件

    构建自动化测试平台的时候需要新建的build.xml文件

Global site tag (gtag.js) - Google Analytics