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