Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.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

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,我想写一个脚本,除了一些文件之外,不包括完整的文件夹 我有一个文件夹,其中有数千个Java文件。现在我想排除该文件夹,并从中包括两个Java文件。我该怎么做 下面的代码不适用于我 <target name="compile" > <javac srcdir="src" destdir="./classes" <exclude name="com/corporate/modes/**"/> <include name="

我想写一个脚本,除了一些文件之外,不包括完整的文件夹

我有一个文件夹,其中有数千个Java文件。现在我想排除该文件夹,并从中包括两个Java文件。我该怎么做

下面的代码不适用于我

<target  name="compile" >
    <javac srcdir="src" destdir="./classes"
        <exclude name="com/corporate/modes/**"/>
        <include name="com/corporate/modes/UpdatePersonalDetail.java"/>


要在编译任务中仅包含文件夹中的特定文件,请使用
元素指定文件。当指定
元素时,编译中将只包括命名文件(及其项目依赖项)

示例项目 项目目录:/home/Project
源目录:/home/project/src
构建目录:/home/project/Build


build.xml(位于/home/project中) Class2.java Class3.java
蚂蚁输出 Ant目标编译类1 请注意,尽管有三个Java源文件,但只编译了
元素指定的文件


Ant目标编译类2
在本例中,尽管Ant目标
compile\u class2
在嵌套的
元素中只指定了一个文件,但是由于class2.java依赖于Class3.java,因此class2.java和Class3.java都被编译。如果编译中没有包含Class2.java的依赖项,那么在尝试执行Class2时,您将收到一个错误,无法找到com.mypackage.Class3

要在编译任务中仅包含文件夹中的特定文件,请使用
元素指定文件。当指定
元素时,编译中将只包括命名文件(及其项目依赖项)

示例项目 项目目录:/home/Project
源目录:/home/project/src
构建目录:/home/project/Build


build.xml(位于/home/project中) Class2.java Class3.java
蚂蚁输出 Ant目标编译类1 请注意,尽管有三个Java源文件,但只编译了
元素指定的文件


Ant目标编译类2
在本例中,尽管Ant目标
compile\u class2
在嵌套的
元素中只指定了一个文件,但是由于class2.java依赖于Class3.java,因此class2.java和Class3.java都被编译。如果编译中没有包含Class2.java的依赖项,那么在尝试执行Class2时,您将收到一个错误,无法找到com.mypackage.Class3

模式覆盖所有模式。只提供您所需的确切文件,不提供详细信息。模式覆盖所有模式。仅提供您需要的确切文件,不提供。我想排除除一个文件外的整个文件夹,如何实现此目的?通过使用
元素指定一个文件(或多个文件),表示只应编译该文件(及其依赖项)。将自动排除所有其他文件和目录(因此,除了指定的文件外,您将排除整个文件夹)。但是,我希望仅获取该文件夹中的一个文件并排除其他文件的原因是什么?答案已更新,以提供完整的项目示例,说明当使用嵌套的
元素指定文件时,只有该文件(及其项目依赖项)将被编译。我想排除除一个文件之外的整个文件夹,这是如何实现的?通过使用
元素指定一个(或多个)文件,您表示只应编译该文件(及其依赖项)。将自动排除所有其他文件和目录(因此,除了指定的文件外,您将排除整个文件夹)。但是,我希望仅获取该文件夹中的一个文件并排除其他文件的原因是什么?答案已更新,以提供完整的项目示例,说明当使用嵌套的
元素指定文件时,将只编译该文件(及其项目依赖项)。
<?xml version="1.0" encoding="UTF-8"?>
<project name="compile_test" basedir="." default="compile_class1">

  <property name="src.dir" value="${basedir}/src" />
  <property name="build.dir" location="${basedir}/build" />
  <property name="classes.dir" location="${build.dir}/classes" />

  <target name="init" description="Initialize the build directory.">
    <mkdir dir="${build.dir}" />
    <mkdir dir="${classes.dir}" />
  </target>

  <target name="clean" description="Delete all files created by this script.">
    <delete dir="${build.dir}" />
  </target>

  <target name="compile_class1" depends="init">
    <javac srcdir="${src.dir}" destdir="${classes.dir}"
        includeantruntime="false">
      <include name="com/mypackage/Class1.java" />
    </javac>
  </target>

  <target name="compile_class2" depends="init">
    <javac srcdir="${src.dir}" destdir="${classes.dir}"
        includeantruntime="false">
      <include name="com/mypackage/Class2.java" />
    </javac>
  </target>
</project>
package com.mypackage;

public class Class1 {
  public static void main(String[] args){
    System.out.println("Class1");
  }
}
package com.mypackage;

public class Class2 {
  public static void main(String[] args){
    Class3 class3 = new Class3();
    System.out.println(class3.getMessage());
  }
}
package com.mypackage;

public class Class3 {
  public String getMessage() {
    return "The answer is 42.";
  }
}
$ ant clean compile_class1

Buildfile: /home/project/build.xml

clean:
   [delete] Deleting directory /home/project/build

init:
    [mkdir] Created dir: /home/project/build
    [mkdir] Created dir: /home/project/build/classes

compile_class1:
    [javac] Compiling 1 source file to /home/project/build/classes

BUILD SUCCESSFUL
Total time: 1 second
$ ant clean compile_class2

Buildfile: /home/project/build.xml

clean:
   [delete] Deleting directory /home/project/build

init:
    [mkdir] Created dir: /home/project/build
    [mkdir] Created dir: /home/project/build/classes

compile_class2:
    [javac] Compiling 1 source file to /home/project/build/classes

BUILD SUCCESSFUL
Total time: 1 second