<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="jar" name="plugin-repository-s3">
    <!-- JDK路径,根据自己机器上实际位置修改-->
    <property name="jdk.home" value="/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home"/>

    <property name="libs" value="${basedir}/lib"/>
    <property name="publicLibs" value=""/>
    <property name="destLoc" value="."/>
    <property name="classes" value="classes"/>
    <xmlproperty file="${basedir}/plugin.xml"/>
    <property name="current-version" value="${plugin.version}"/>

    <!-- 插件版本-->
    <property name="plugin-version" value="${current-version}"/>
    <!-- 插件名字-->
    <property name="plugin-name" value="s3-repository"/>
    <property name="plugin-jar" value="fr-plugin-${plugin-name}-${plugin-version}.jar"/>

    <target name="prepare">
        <delete dir="${classes}"/>
        <delete dir="fr-plugin-${plugin-name}-${plugin-version}"/>
        <xmlproperty file="${basedir}/plugin.xml"/>
        <delete dir="${destLoc}/${plugin.name}"/>
    </target>
    <path id="compile.classpath">
        <fileset dir="${libs}">
            <include name="**/*.jar"/>
        </fileset>
        <fileset dir="${publicLibs}">
            <include name="**/*.jar"/>
        </fileset>
    </path>
    <patternset id="resources4Jar">
        <exclude name="**/.settings/**"/>
        <exclude name=".classpath"/>
        <exclude name=".project"/>

        <exclude name="**/*.java"/>
        <exclude name="**/*.db"/>
        <exclude name="**/*.g"/>
        <exclude name="**/package.html"/>
    </patternset>
    <target name="copy_resources">
        <echo message="从${resources_from}拷贝图片,JS,CSS等资源文件"/>
        <delete dir="tmp"/>
        <copy todir="tmp">
            <fileset dir="${resources_from}/src/main/resources">
                <patternset refid="resources4Jar"/>
            </fileset>
        </copy>
        <copy todir="${classes}">
            <fileset dir="tmp"/>
        </copy>
        <delete dir="tmp"/>
    </target>
    <target name="compile_javas">
        <echo message="编译${compile_files}下的Java文件"/>
        <javac destdir="${classes}" debug="false" optimize="on" source="${source_jdk_version}"
               target="${target_jdk_version}"
               fork="true" memoryMaximumSize="512m" listfiles="false" srcdir="${basedir}"
               executable="${compile_jdk_version}/bin/javac">
            <src path="${basedir}/src/main/java"/>
            <exclude name="**/.svn/**"/>
            <compilerarg line="-encoding UTF8 "/>
            <classpath refid="compile.classpath"/>
        </javac>
    </target>

    <target name="jar_classes">
        <echo message="打Jar包:${jar_name}"/>
        <delete file="${basedir}/${jar_name}"/>
        <jar jarfile="${basedir}/${jar_name}">
            <fileset dir="${classes}">
            </fileset>
        </jar>
    </target>

    <target name="super_jar" depends="prepare">
        <antcall target="copy_resources">
            <param name="resources_from" value="${basedir}"/>
        </antcall>
        <antcall target="compile_javas">
            <param name="source_jdk_version" value="1.8"/>
            <param name="target_jdk_version" value="1.8"/>
            <param name="compile_jdk_version" value="${jdk.home}"/>
            <param name="compile_files" value="${basedir}/src"/>
        </antcall>
        <echo message="compile plugin success!"/>

        <antcall target="jar_classes">
            <param name="jar_name" value="${plugin-jar}"/>
        </antcall>
        <delete dir="${classes}"/>
    </target>

    <target name="jar" depends="super_jar">
        <antcall target="zip"/>
    </target>

    <target name="zip">
        <property name="plugin-folder" value="fr-plugin-${plugin-name}-${plugin-version}"/>
        <echo message="----------zip files----------"/>
        <mkdir dir="${plugin-folder}"/>
        <copy todir="${plugin-folder}">
            <fileset dir=".">
                <include name="${plugin-jar}"/>
                <include name="plugin.xml"/>
            </fileset>
            <fileset dir="${libs}">
                <include name="*.jar"/>
                <include name="*.dll"/>
            </fileset>
        </copy>
        <zip destfile="${basedir}/${plugin-folder}.zip" basedir=".">
            <include name="${plugin-folder}/*.jar"/>
            <include name="${plugin-folder}/*.dll"/>
            <include name="${plugin-folder}/plugin.xml"/>
        </zip>
        <xmlproperty file="${basedir}/plugin.xml"/>
        <move file="${plugin-folder}.zip" todir="${destLoc}/${plugin.name}"/>
        <delete dir="${plugin-folder}"/>
    </target>
</project>