﻿<?xml version="1.0" encoding="UTF-8"?>
<project name="demo" default="war" xmlns:artifact="urn:maven-artifact-ant">
    <description>
    </description>
    <property file="build.properties" />

    <target name="init_maven">
        <!--
        remember to set M2_REPO before use this build.xml, for example in eclispe:
        "Window→Preferences→Ant→Runtime", add a new property named "M2_REPO" and set it value point to the path of your maven
        local repository; Or you can set it in build.properties.  You need do one (and only one) of them.
        -->
        <path id="maven-ant-tasks.classpath" path="${M2_REPO}/org/apache/maven/maven-ant-tasks/2.1.3/maven-ant-tasks-2.1.3.jar" />
        <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpathref="maven-ant-tasks.classpath" />

        <artifact:pom id="maven.project" file="pom.xml" />
        <artifact:dependencies pathId="classpath.build" filesetid="maven.fileset.build">
            <pom refid="maven.project" />
        </artifact:dependencies>
        <artifact:dependencies pathId="classpath.runtime" filesetid="maven.fileset.runtime" useScope="runtime">
            <pom refid="maven.project" />
        </artifact:dependencies>
    </target>


    <target name="maven_info" depends="init_maven">
        <echo>Maven build directory is ${maven.project.build.directory}</echo>
        <echo>Maven build finalName is ${maven.project.build.finalName}</echo>
        <echo>Maven build sourceDirectory directory is ${maven.project.build.sourceDirectory}</echo>
        <echo>Maven build outputDirectory directory is ${maven.project.build.outputDirectory}</echo>
        <echo>Maven build scriptSourceDirectory directory is ${maven.project.build.testSourceDirectory}</echo>
        <echo>Maven build testOutputDirectory directory is ${maven.project.build.testOutputDirectory}</echo>
        <echo>Maven build scriptSourceDirectory directory is ${maven.project.build.scriptSourceDirectory}</echo>
        <echo>Maven build resourceDirectory directory is ${maven.project.build.resources}</echo>

        <property name="target.jar.name" value="${maven.project.build.directory}/${maven.project.build.finalName}.jar" />
        <echo>Maven build scriptSourceDirectory directory is ${target.jar.name}</echo>
    </target>

    <target name="clean" depends="init_maven">
        <echo>clean build directory : ${maven.project.build.directory}</echo>
        <delete dir="${maven.project.build.directory}" includes="**/*" />
    </target>

    <target name="init_path" depends="maven_info, clean">
        <echo>make dir for java compile: ${maven.project.build.outputDirectory}</echo>
        <mkdir dir="${maven.project.build.outputDirectory}" />
    </target>

    <target name="compile" description="description" depends="init_maven">
        <javac srcdir="${maven.project.build.sourceDirectory}" destdir="${maven.project.build.outputDirectory}" classpathref="classpath.build" />
    </target>
    <target name="copyFile" depends="init_maven">
    	<echo>开始拷贝资源文件</echo>
        <copy todir="${maven.project.build.directory}/${path.package}/${path.target.name}/${path.package.file}">
        	<fileset dir="${maven.project.build.directory}/oa-web">
            </fileset>
    	</copy>
    	
    	<echo>开始拷贝正式环境配置文件</echo>
    	<copy todir="${maven.project.build.outputDirectory}/${path.package}/${path.target.name}/${path.package.file}/WEB-INF/classes">
            <fileset dir="src/main/resources">
            </fileset>
        </copy>
    </target>
	
    <target name="copyTestFile" depends="init_maven">
    	<echo>开始拷贝资源文件</echo>
        <copy todir="${maven.project.build.directory}/${path.package}/${path.target.name}/${path.package.file}">
        	<fileset dir="${maven.project.build.directory}/oa-web">
            </fileset>
    	</copy>
    	
    	<echo>开始拷贝203环境配置文件</echo>
    	<copy todir="${maven.project.build.outputDirectory}/${path.package}/${path.target.name}/${path.package.file}/WEB-INF/classes">
            <fileset dir="src/main/resources">
            </fileset>
        </copy>
    </target>


    <target name="package_prepare" depends="init_maven">
        <echo>clean package directory : ${maven.project.build.directory}/${path.package}</echo>
        <delete dir="${maven.project.build.directory}/${path.package}" />
        <mkdir dir="${maven.project.build.directory}/${path.package}" />
        <mkdir dir="${maven.project.build.directory}/${path.package}/${path.target.name}" />
        <mkdir dir="${maven.project.build.directory}/${path.package}/${path.target.name}/${path.package.lib}" />
    </target>

    <target name="copyLib" depends="init_maven">
        <copy todir="${maven.project.build.directory}/${path.package}/${path.target.name}/${path.package.lib}">
            <fileset refid="maven.fileset.runtime" />
            <mapper type="flatten" />
        </copy>
    </target>

	<target name="delete" depends="init_maven">
		<delete dir="${maven.project.build.directory}/${path.package}/${path.target.name}"></delete>
	</target>
	
	<target name="testwar" depends="delete,copyLib,copyTestFile">
		<echo>war包地址：${maven.project.build.directory}/${path.package}/${war.name}.war</echo>
  		<war destfile="${maven.project.build.directory}/${path.package}/${war.name}.war" webxml="src/main/webapp/WEB-INF/web.xml">
		   <fileset dir="src/main/webapp" />
		   <lib dir="${maven.project.build.directory}/${path.package}/${path.target.name}/${path.package.lib}"/>
		   <classes dir="${maven.project.build.outputDirectory}"></classes>
	  	</war>
	</target>
	
	<target name="war" depends="delete,copyLib,copyFile">
		<echo>war包地址：${maven.project.build.directory}/${path.package}/${war.name}.war</echo>
		<echo>项目文件地址：src/main/webapp</echo>
		<echo>class文件地址：${maven.project.build.outputDirectory}</echo>
  		<war destfile="${maven.project.build.directory}/${path.package}/${war.name}.war" webxml="src/main/webapp/WEB-INF/web.xml">
		   <fileset dir="${maven.project.build.directory}" />
		   <lib dir="${maven.project.build.directory}/${path.package}/${path.target.name}/${path.package.lib}"/>
		   <classes dir="${maven.project.build.outputDirectory}"></classes>
	  	</war>
	</target>

</project>