使用ant和build.xml错误

时间:2014-04-09 01:27:24

标签: java xml eclipse ant

当我尝试在GL服务器上运行程序时,出现错误。此外,我们有两个包,一个是一切,另一个是包含Driver.java的驱动程序包。它运行程序。

建立失败 目标"运行"项目中不存在"自动填充"。

这是为什么?这是我的build.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- WARNING: Eclipse auto-generated file.
          Any modifications will be overwritten.
          To include a user specific buildfile here, simply create one in the same
          directory with the processing instruction <?eclipse.ant.import?>
          as the first entry and export the buildfile again. -->
<project basedir="." default="build" name="AutoFill">
<property environment="env"/>
<property name="debuglevel" value="source,lines,vars"/>
<property name="target" value="1.7"/>
<property name="source" value="1.7"/>
<path id="AutoFill.classpath">
    <pathelement location="bin"/>
</path>
<target name="init">
    <mkdir dir="bin"/>
    <copy includeemptydirs="false" todir="bin">
        <fileset dir="src">
            <exclude name="**/*.launch"/>
            <exclude name="**/*.java"/>
        </fileset>
    </copy>
</target>
<target name="clean">
    <delete dir="bin"/>
</target>
<target depends="clean" name="cleanall"/>
<target depends="build-subprojects,build-project" name="build"/>
<target name="build-subprojects"/>
<target depends="init" name="build-project">
    <echo message="${ant.project.name}: ${ant.file}"/>
    <javac debug="true" debuglevel="${debuglevel}" destdir="bin"
includeantruntime="false" source="${source}" target="${target}">   
        <src path="src"/>
        <classpath refid="AutoFill.classpath"/>
    </javac>
</target>
<target description="Build all projects which reference this project. Useful to 
includeantruntime="false" source="${source}" target="${target}">
<target description="copy Eclipse compiler jars to ant lib directory" name="init-
    <copy todir="${ant.library.dir}">
        <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/>
    </copy>
    <unzip dest="${ant.library.dir}">
        <patternset includes="jdtCompilerAdapter.jar"/>
        <fileset dir="${ECLIPSE_HOME}/plugins" includes="org.eclipse.jdt.core_*.jar"/>
    </unzip>
</target>
<target description="compile project with Eclipse compiler" name="build-eclipse 
 compiler">
    <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
    <antcall target="build"/>
</target>
<target name="MaxHeap">
    <java classname="proj3.MaxHeap" failonerror="true" fork="yes">
        <classpath refid="AutoFill.classpath"/>
    </java>
</target>
<target name="Driver">
    <java classname="driver.Driver" failonerror="true" fork="yes">
        <classpath refid="AutoFill.classpath"/>
    </java>
</target>
</project>

1 个答案:

答案 0 :(得分:0)

我在这里重新格式化了build.xml。它有一些问题:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="build" name="AutoFill">
    <property environment="env"/>
    <property name="debuglevel" value="source,lines,vars"/>
    <property name="target" value="1.7"/>
    <property name="source" value="1.7"/>
    <path id="AutoFill.classpath">
        <pathelement location="bin"/>
    </path>

    <target name="init">
        <mkdir dir="bin"/>
        <copy includeemptydirs="false" todir="bin">
            <fileset dir="src">
                <exclude name="**/*.launch"/>
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>

    <target name="clean">
        <delete dir="bin"/>
    </target>

    <target name="cleanall" depends="clean"/>

    <target name="build"
        depends="build-subprojects, build-project"/>

    <target name="build-subprojects"/>

    <target name="build-project"
        depends="init">
        <echo message="${ant.project.name}: ${ant.file}"/>
        <javac debug="true"
            debuglevel="${debuglevel}"
            destdir="bin"
            includeantruntime="false"
            source="${source}"
            target="${target}">   
            <src path="src"/>
            <classpath refid="AutoFill.classpath"/>
        </javac>
    </target>

    <!-- Something happened here... -->
    <target
        description="Build all projects which reference this project. Useful to "/>
    <!-- includeantruntime="false" source="${source}" target="${target}"> -->

    <!-- Something happened to the name of this target -->
    <target name="init-"
        description="copy Eclipse compiler jars to ant lib directory">
        <copy todir="${ant.library.dir}">
            <fileset dir="${ECLIPSE_HOME}/plugins"
                includes="org.eclipse.jdt.core_*.jar"/>
        </copy>
        <unzip dest="${ant.library.dir}">
            <patternset includes="jdtCompilerAdapter.jar"/>
            <fileset dir="${ECLIPSE_HOME}/plugins"
                includes="org.eclipse.jdt.core_*.jar"/>
        </unzip>
    </target>

    <!-- Something happened to this target name -->
    <target name="build-eclipse compiler"
        description="compile project with Eclipse compiler">
        <property name="build.compiler" value="org.eclipse.jdt.core.JDTCompilerAdapter"/>
        <antcall target="build"/>
    </target>

    <target name="MaxHeap">
        <java classname="proj3.MaxHeap"
            failonerror="true" fork="yes">
            <classpath refid="AutoFill.classpath"/>
        </java>
    </target>

    <target name="Driver">
        <java classname="driver.Driver"
            failonerror="true" fork="yes">
            <classpath refid="AutoFill.classpath"/>
        </java>
    </target>
</project>

我不知道你是否错误地复制了它,但它现在不是一个有效的Ant构建文件。您可能想查看您的帖子,看看您是否遗漏了任何内容。

您的错误很简单。您没有名为run的目标。我不知道你为什么要执行它。 (也许它出现在你build.xml的一部分中。

有效目标是:

  • 初始化
  • 清洁
  • cleanall
  • 构建
  • 建项目
  • 集结子项目
  • 初始化 - ??? (目标名称不完整)
  • build-eclipse编译器(目标名称无效。不能包含空格)
  • MaxHeap(Java可执行文件)
  • 驱动程序(Java可执行文件)

如果您尝试编译此项目,则需要运行build-projectbuild目标,而不是run。 (build-projectbuild都做同样的事情。)

如果您尝试运行某个程序,MaxHeapDriverbuild.xml中唯一的两个Java可执行目标。

因此,您可能希望执行目标build,然后DriverMaxHeap