2014-05-03 90 views
-1

我有這樣的XML代碼腳本,它說,使用命令提示符來執行,但一切我試圖不工作,它具有規定我執行什麼命令來運行該XML文件

克隆自述文件該項目與git或從github頁面下載源zip並提取它。
打開文件夾並運行build.xml(這可能需要執行cmd)。
等待構建完成並從cmd運行DarkBot.jar,使用--help參數指定參數。

<project name="DarkBot" default="generate-protocols" basedir="."> 
<target name="init"> 
    <property name="outputDir" value="bin" /> 
    <property name="protocolsDir" value="protocols" /> 
    <property name="protocolsPackage" value="org.darkstorm.darkbot.minecraftbot.protocol" /> 
    <property name="deployJar" value="DarkBot.jar" /> 
    <property name="libraryDir" value="lib" /> 
    <property name="tempDir" value="temp" /> 
    <property name="mainClass" value="org.darkstorm.darkbot.mcwrapper.Main" /> 
    <property name="antContribPath" value="build/ant-contrib-1.0b3.jar" /> 
</target> 

<target name="clean" depends="init"> 
    <delete file="${deployJar}" failonerror="false" /> 
    <delete dir="${outputDir}" failonerror="false" /> 
    <delete dir="${tempDir}" failonerror="false" /> 
</target> 

<target name="compile" depends="clean"> 
    <mkdir dir="${outputDir}" /> 
    <javac encoding="UTF-8" destdir="${outputDir}" includeantruntime="false"> 
     <src path="src/main/java" /> 
     <src path="src/main/resources" /> 
     <classpath> 
      <fileset dir="${libraryDir}"> 
       <include name="**/*.jar" /> 
      </fileset> 
     </classpath> 
    </javac> 
    <copy todir="${outputDir}"> 
     <fileset dir="src/main/java"> 
      <exclude name="**/*.java" /> 
     </fileset> 
     <fileset dir="src/main/resources"> 
      <exclude name="**/*.java" /> 
     </fileset> 
    </copy> 
</target> 

<target name="deploy" depends="compile"> 
    <mkdir dir="${tempDir}" /> 
    <unzip dest="${tempDir}"> 
     <patternset> 
      <exclude name="META-INF/**" /> 
     </patternset> 
     <fileset dir="${libraryDir}"> 
      <include name="**/*.jar" /> 
     </fileset> 
    </unzip> 
    <copy todir="${tempDir}"> 
     <fileset dir="${outputDir}"> 
      <include name="*" /> 
     </fileset> 
    </copy> 

    <echo message="Manifest-Version: 1.0${line.separator}Class-Path: .${line.separator}Main-Class: ${mainClass}" file="${outputDir}/manifest.txt" /> 
    <jar destfile="${deployJar}" basedir="${outputDir}" manifest="${outputDir}/manifest.txt" excludes="manifest.txt" /> 
    <jar destfile="${deployJar}" basedir="${tempDir}" includes="**/**" update="true" /> 
    <delete dir="${tempDir}" /> 
</target> 

<target name="generate-protocols" depends="deploy"> 
    <taskdef resource="net/sf/antcontrib/antlib.xml"> 
     <classpath> 
      <pathelement location="${antContribPath}" /> 
     </classpath> 
    </taskdef> 
    <mkdir dir="${protocolsDir}" /> 
    <javac encoding="UTF-8" destdir="${protocolsDir}" includeantruntime="false"> 
     <src path="src/main/protocols" /> 
     <classpath> 
      <fileset file="${deployJar}" /> 
      <fileset dir="${libraryDir}"> 
       <include name="**/*.jar" /> 
      </fileset> 
     </classpath> 
    </javac> 
    <propertyregex property="protocolsFolder" input="src.main.protocols.${protocolsPackage}" global="true" regexp="\." replace="/" /> 
    <pathconvert property="files" pathsep="${line.separator}"> 
     <map from="${protocolsFolder}{$file.separator}" to="" /> 
     <dirset dir="${protocolsFolder}"> 
      <include name="*" /> 
     </dirset> 
    </pathconvert> 
    <propertyregex property="protocolsFolder" override="true" input="${protocolsPackage}" global="true" regexp="\." replace="/" /> 
    <for list="${files}" delimiter="${line.separator}" param="file"> 
     <sequential> 
      <local name="protocolVersion" /> 
      <basename property="protocolVersion" file="@{file}" /> 
      <mkdir dir="${protocolsDir}/META-INF/services" /> 
      <if> 
       <contains string="${protocolVersion}" substring="x" /> 
       <then> 
        <propertyregex property="protocolVersion" override="true" input="${protocolVersion}" regexp="v([0-9]+)" select="\1" /> 
        <echo message="${protocolsPackage}.v${protocolVersion}x.Protocol${protocolVersion}X$$Provider" file="${protocolsDir}/META-INF/services/${protocolsPackage}.ProtocolProvider" /> 
        <jar destfile="${protocolsDir}/v${protocolVersion}x.jar" update="false" basedir="${protocolsDir}" includes="${protocolsFolder}/v${protocolVersion}x/**/**,META-INF/**/**" /> 
       </then> 
       <else> 
        <propertyregex property="protocolVersion" override="true" input="${protocolVersion}" regexp="v([0-9]+)" select="\1" /> 
        <echo message="${protocolsPackage}.v${protocolVersion}.Protocol${protocolVersion}$$Provider" file="${protocolsDir}/META-INF/services/${protocolsPackage}.ProtocolProvider" /> 
        <jar destfile="${protocolsDir}/v${protocolVersion}.jar" update="false" basedir="${protocolsDir}" includes="${protocolsFolder}/v${protocolVersion}/**/**,META-INF/**/**" /> 
       </else> 
      </if> 
      <delete dir="${protocolsDir}/META-INF" /> 
     </sequential> 
    </for> 
    <propertyregex property="protocolBase" input="${protocolsPackage}" regexp="^([a-zA-Z][a-zA-Z0-9]+).*" select="\1" /> 
    <delete dir="${protocolsDir}/${protocolBase}" /> 
</target> 

+0

這看起來像一個[Ant](http://ant.apache.org)構建腳本 – user3159253

回答

0

它的一個Ant構建文件。下載Ant並運行列出的構建目標

ant deploy 
相關問題