⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 build.xml.svn-base

📁 开源项目openfire的完整源程序
💻 SVN-BASE
📖 第 1 页 / 共 2 页
字号:
<?xml version="1.0" encoding="UTF-8"?>

<project name="Spark" default="release" basedir="..">

    <description>
        Spark build script.
    </description>

    <taskdef resource="net/sf/antcontrib/antcontrib.properties">
        <classpath>
            <pathelement location="${basedir}/build/lib/ant-contrib.jar"/>
        </classpath>
    </taskdef>

    <taskdef name="pack200" classname="com.sun.tools.apache.ant.pack200.Pack200Task">
        <classpath>
            <pathelement location="${basedir}/build/lib/pack200task.jar"/>
        </classpath>
    </taskdef>


    <!-- Optional add this file to override any of the properties below -->
    <property file="${basedir}/build/build.properties"/>
    <property name="version.major" value="2"/>
    <property name="version.minor" value="5"/>
    <property name="version.revision" value="8"/>
    <property name="version.extra" value=""/>
    <!-- For 'beta' or 'alpha' -->

    <!-- Setup the full version property correctly -->
    <if>
        <equals arg1="${version.extra}" arg2=""/>
        <then>
            <property name="version"
                      value="${version.major}.${version.minor}.${version.revision}"/>
            <property name="version.filename"
                      value="${version.major}_${version.minor}_${version.revision}"/>
        </then>
        <else>
            <property name="version"
                      value="${version.major}.${version.minor}.${version.revision}.${version.extra}"/>
            <property name="version.filename"
                      value="${version.major}_${version.minor}_${version.revision}_${version.extra}"/>
        </else>
    </if>

    <description>Spark Build</description>
    <!--set global properties for this build-->
    <property name="src" location="${basedir}/src/java"/>
    <property name="lib.dir" location="${basedir}/build/lib"/>
    <property name="dist.libs.dir" location="${basedir}/build/lib/dist"/>
    <property name="merge.libs.dir" location="${basedir}/build/lib/merge"/>
    <property name="libs.windows.dir" location="${dist.libs.dir}/windows"/>
    <property name="libs.linux.dir" location="${dist.libs.dir}/linux"/>
    <property name="libs.mac.dir" location="${dist.libs.dir}/mac"/>
    <property name="target" location="${basedir}/target"/>
    <property name="classes" location="${target}/classes"/>
    <property name="target.build" location="${target}/build"/>
    <property name="sparkplugs.build" location="${target}/sparkplugs"/>
    <property name="target.resources" location="${target.build}/resources"/>
    <property name="targetlib" location="${target.build}/lib"/>
    <property name="targetlogs" location="${target.build}/logs"/>
    <property name="targetdocs" location="${target.build}/documentation"/>
    <property name="targetdocsapi" location="${targetdocs}/api"/>
    <property name="plugins" location="${target.build}/plugins"/>
    <property name="bin" location="${target.build}/bin"/>
    <property name="resources.dir" location="${basedir}/src/resources"/>
    <property name="commercial.plugin.dir" location="${basedir}/src/commercial"/>
    <property name="xtra.dir" location="${basedir}/src/xtra"/>
    <property name="target.xtra" location="${target.build}/xtra"/>


    <!-- Installer Ant Script -->

    <property name="installer.install4j.home" value="c:\\Program Files\\install4j"/>
    <property name="installer.dest.dir" value="${target}/installer"/>
    <property name="installer.install4j.srcfile" value="${basedir}/build/installer/spark.install4j"/>
    <property name="installer.app_name" value="Spark"/>
    <property name="installer.app_short_name" value="Spark"/>
    <property name="installer.product_name" value="Spark"/>
    <property name="installer.publisher" value="Jive Software"/>
    <property name="installer.publisher_url" value="www.jivesoftware.com"/>
    <property name="installer.file_prefix" value="${installer.app_short_name}"/>
    <property name="installer.release_root_path" value="${target.build}"/>

    <property name="advinst.path" value="C:\Program Files\Caphyon\Advanced Installer"/>
    <property name="mac.build.dir" value="${target}/spark_${version.filename}"/>
    <property name="mac.app.file" value="${mac.build.dir}/Spark.app"/>
    <property name="mac.dmg.file" value="${target}/installer/spark_${version.filename}.dmg"/>
    <property name="mac.volname" value="Spark_${version.major}.${version.minor}.${version.revision}"/>
    <property name="win.msi.withjre" value="${target}/installer/spark_${version.filename}.msi"/>
    <property name="win.msi.nojre" value="${target}/installer/spark_${version.filename}_online.msi"/>
    <property name="pack200.excludes"
              value="jingle.jar,mail.jar,activation.jar,dom4j.jar,startup.jar,base.jar,i4jruntime.jar"/>

    <!-- Define Default Library Archives -->
    <path id="agent.dependencies">
        <fileset dir="${dist.libs.dir}" includes="*.jar"/>
        <fileset dir="${merge.libs.dir}" includes="*.jar"/>
        <fileset dir="${libs.windows.dir}" includes="*.jar"/>
        <fileset dir="${lib.dir}" includes="*.jar"/>
    </path>

    <!-- clean =================================================================================== -->
    <target name="clean" description="Deletes files generated during the build.">
        <!--Delete created directory trees-->
        <delete failonerror="false">
            <fileset dir="${target}" followsymlinks="false"/>
        </delete>
    </target>

    <!-- init =================================================================================== -->
    <target name="init">
        <!-- Check for min build requirements -->
        <condition property="ant.not.ok" value="true">
            <not>
                <or>
                    <contains string="${ant.version}" substring="1.6"/>
                    <contains string="${ant.version}" substring="1.7"/>
                </or>
            </not>
        </condition>
        <condition property="java.not.ok" value="true">
            <not>
                <or>
                    <contains string="${ant.java.version}" substring="1.5"/>
                    <contains string="${ant.java.version}" substring="1.6"/>
                </or>
            </not>
        </condition>
        <fail if="ant.not.ok" message="Must use Ant 1.6.x or 1.7.x to build Spark"/>
        <fail if="java.not.ok" message="Must use JDK 1.5.x or higher to build Spark"/>

        <!-- Platform-specific initializations -->
        <condition property="windows">
            <os family="windows"/>
        </condition>
        <condition property="unix">
            <os family="unix"/>
        </condition>
        <condition property="solaris">
            <os name="SunOS"/>
        </condition>
        <condition property="linux">
            <os name="Linux"/>
        </condition>
        <condition property="mac">
            <os name="Mac OS X"/>
        </condition>

        <!--creates the build directory-->
        <mkdir dir="${target}"/>
        <mkdir dir="${classes}"/>
        <mkdir dir="${target.build}"/>
        <mkdir dir="${target.resources}"/>
        <mkdir dir="${targetlib}"/>
        <mkdir dir="${targetlogs}"/>
        <mkdir dir="${targetdocs}"/>
        <mkdir dir="${plugins}"/>
        <mkdir dir="${bin}"/>
        <mkdir dir="${target.xtra}"/>

    </target>

    <!-- resources =================================================================================== -->
    <target name="resources">
        <copy todir="${classes}">
            <fileset dir="${resources.dir}">
                <include name="**/*"/>
            </fileset>
            <fileset dir="${basedir}/src/java">
                <include name="**/*.properties"/>
            </fileset>
        </copy>
        <copy todir="${target.resources}">
            <fileset dir="${resources.dir}">
                <exclude name="*.bat"/>
                <exclude name="settings.xml"/>
                <include name="*.*"/>
            </fileset>
        </copy>
        <copy todir="${target.resources}/sounds">
            <fileset dir="${resources.dir}/sounds">
                <include name="*.*"/>
            </fileset>
        </copy>
        <copy todir="${plugins}">
            <fileset dir="${commercial.plugin.dir}">
                <include name="*.jar"/>
            </fileset>
        </copy>
        <copy todir="${target.xtra}">
            <fileset dir="${xtra.dir}">
                <include name="**/*.*"/>
            </fileset>
        </copy>

    </target>

    <!-- build =================================================================================== -->
    <target name="build" depends="init, resources, base">
        <!--Compiles the java code from ${src} directory into ${classes} directory-->
        <javac destdir="${classes}"
               debug="on"
               source="1.5"
               target="1.5"
                >
            <classpath>
                <path refid="agent.dependencies"/>
            </classpath>
            <src path="${src}"/>
        </javac>
        <touch file="${targetlogs}/error.log"/>
        <copy todir="${targetdocs}">
            <fileset dir="${basedir}/documentation" includes="**/*" excludes="changes.*">
            </fileset>
        </copy>
        <copy todir="${targetlib}/windows">
            <fileset dir="${libs.windows.dir}">
                <include name="**/*.*"/>
            </fileset>
        </copy>
        <copy todir="${targetlib}/linux">
            <fileset dir="${libs.linux.dir}">
                <include name="**/*.*"/>
            </fileset>
        </copy>
        <copy todir="${targetlib}/mac">
            <fileset dir="${libs.mac.dir}">
                <include name="**/*.*"/>
            </fileset>
        </copy>
        <copy todir="${targetlib}">
            <fileset dir="${dist.libs.dir}">
                <include name="**/*.*"/>
            </fileset>
        </copy>
        <copy todir="${targetlib}">
            <fileset dir="${basedir}/build/lib">
                <include name="i4jruntime.jar"/>
            </fileset>
        </copy>

        <copy todir="${bin}">
            <fileset dir="${resources.dir}">
                <include name="startup.bat"/>
                <include name="startup.sh"/>
            </fileset>
        </copy>
        <chmod file="${bin}/startup.sh" perm="+x"/>
    </target>

    <!-- jar =================================================================================== -->
    <target name="jar" depends="build">
        <!--Put everything in ${classes} into the MyProject-${DSTAMP}.jar file-->
        <tstamp/>

        <!-- Make startup jar -->
        <jar jarfile="${targetlib}/startup.jar">
            <fileset dir="${classes}">
                <include name="org/jivesoftware/launcher/*.class"/>
            </fileset>
            <manifest>
                <attribute name="Main-Class"
                           value="org.jivesoftware.launcher.Startup"/>
                <attribute name="Built-By" value="Jive Software (www.igniterealtime.org)"/>
            </manifest>
        </jar>

        <jar jarfile="${targetlib}/spark.jar" basedir="${classes}" excludes="org/jivesoftware/Startup.class"/>

    </target>

    <target name="release" depends="jar">
        <!-- Pack200 on all jars -->
        <for param="jar">
            <path>
                <fileset dir="${targetlib}" includes="*.jar" excludes="${pack200.excludes}"/>
            </path>
            <sequential>
                <delete file="@{jar}.pack"/>
                <pack200 src="@{jar}"
                         destfile="@{jar}.pack"
                         gzipoutput="false"
                        />
                <delete file="@{jar}"/>
            </sequential>
        </for>
        <!-- Pack200 all plugins -->
        <for param="jar">
            <path>
                <fileset dir="${plugins}" includes="*.jar" excludes="${pack200.excludes}"/>
            </path>
            <sequential>
                <delete file="@{jar}.pack"/>
                <pack200 src="@{jar}"
                         destfile="@{jar}.pack"
                         gzipoutput="false"
                        />
                <delete file="@{jar}"/>
            </sequential>
        </for>
    </target>

    <!-- javadocs =================================================================================== -->
    <target name="release.javadocs" depends="jar, javadocs"
            description="creates javadocs version for developer source builds">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -