📄 build.xml.svn-base
字号:
<?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 + -