Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ant目标中的编译顺序_Java_Ant - Fatal编程技术网

Java ant目标中的编译顺序

Java ant目标中的编译顺序,java,ant,Java,Ant,下面的antcompile目标编译使用标记指定的任何src文件夹中的所有.java文件。我的问题是关于汇编的顺序。ant是否首先编译第一个src标记引用的文件(即它是否首先编译${xtext.project.path}/src中的Java文件),然后编译第二个src标记,等等。?文件的编译顺序是什么?我试图找出文件夹之间的依赖关系,并想知道它们列出的顺序是否告诉了我什么 <target name="compile"> <echo message="${ant.

下面的
ant
compile
目标编译使用
标记指定的任何
src
文件夹中的所有
.java
文件。我的问题是关于汇编的顺序。
ant
是否首先编译第一个
src
标记引用的文件(即它是否首先编译
${xtext.project.path}/src
中的Java文件),然后编译第二个
src
标记,等等。?文件的编译顺序是什么?我试图找出文件夹之间的依赖关系,并想知道它们列出的顺序是否告诉了我什么

 <target name="compile">
        <echo message="${ant.project.name}: ${ant.file}"/>

        <deps-load-path conf="core"   pathid="core.ivy.classpath" />
        <deps-load-path conf="test"   pathid="test.ivy.classpath" />

        <javac debug="true" includeantruntime="false" debuglevel="source,lines,vars" destdir="${bin.path}" source="1.8" target="1.8">
            <src path="${xtext.project.path}/src"/>
          <src path="${xtext.project.path}/src-gen"/>
          <src path="${project.path}/src"/>
          <src path="${project.path}/src-gen-umpletl"/>
          <src path="${project.path}/src-gen-umple"/>
          <src path="${project.path}/test"/>
          <src path="${vendors.path}/jopt-simple/src"/>
          <exclude name="**/.git"/>
          <exclude name="**/*.ump" />
          <exclude name="**/data" />
          <classpath refid="project.classpath"/>
          <classpath refid="validator.project.classpath"/>
          <classpath refid="core.ivy.classpath" />
          <classpath refid="test.ivy.classpath" />
            <!-- Add compiler arguments here, see https://ant.apache.org/manual/using.html#arg for details, example below
                  <compilerarg value="-Xlint:deprecation" />
            -->
        </javac>

        <copy todir="${bin.path}" overwrite="true">
            <fileset dir="${project.path}/src"><include name="**/*.grammar"/></fileset>
            <fileset dir="${project.path}/src"><include name="**/*.error"/></fileset>
        </copy>
        <delete file="cruise.umple/src/rules.grammar"/>
        <delete file="cruise.umple/bin/rules.grammar"/>
      </target>

您可以通过使用
-verbose
选项运行Ant来查看
是如何编译文件的

例如,下面的Ant脚本

<javac debug="true" includeantruntime="false">
    <src path="src1"/>
    <src path="src2"/>
</javac>
在上面的示例中,Ant将
元素组合成分号分隔的
-sourcepath
参数

-sourcepath
是以下选项之一:

-源路径源路径

指定用于搜索类或接口定义的源代码路径。与用户类路径一样,源路径条目在Oracle Solaris上用冒号(:)分隔,在Windows上用分号分隔,可以是目录、JAR存档或ZIP存档

注意Ant的
任务和Oracle的
javac
工具之间的区别。Ant
任务调用Oracle
javac
工具


对于您的问题“文件的编译顺序是什么?”,答案基本上是:Java文件都是同时编译的。

我想知道您是否可以回答另一个问题
project.classpath
在文件中的其他位置定义为与
${bin.path}
相同的位置,编译后的文件将写入该位置。
${bin.path}
如何既是类路径依赖项又是写入
.class
文件的位置?我知道,
${bin.path}
在每次构建之前都会被删除,因此在运行
编译
目标之前,文件夹中没有任何内容。作为
编译
目标执行而生成的
文件是否添加到
类路径
?我对此提出了另一个问题: