首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ant和build.xml误差

使用ant和build.xml误差
EN

Stack Overflow用户
提问于 2014-04-09 01:27:23
回答 1查看 4K关注 0票数 0

当我试图在GL服务器上运行我的程序时,我会得到一个错误。另外,我们有两个包,一个是所有的东西,另一个是包含Driver.java的驱动程序包。它运行程序。

项目"AutoFill“中不存在生成失败目标"run”。

为什么会这样呢?这是我的build.xml

代码语言:javascript
复制
<?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>
EN

回答 1

Stack Overflow用户

发布于 2014-04-09 03:07:18

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

代码语言:javascript
复制
<?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的那部分被搞砸了。

有效的目标是:

  • 初始化
  • 打扫
  • 清洗剂
  • 构建
  • 建设项目
  • 建设-次级项目
  • 在-?(目标名称不完整)
  • 构建eclipse编译器(无效的目标名称)。不能包含空格)
  • MaxHeap (Java可执行)
  • 驱动程序(Java可执行)

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

如果您试图运行某个程序,MaxHeapDriverbuild.xml中仅有的两个可执行目标。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22951201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档