1.경로형 구조 타입
- 클래스패스나 패스처럼 ant에서 경로를 나타내고자 할 때 사용하는 타입이다. 이 타입의 하위 엘리먼트인 pathelement는 파일이나 디렉토리 값을 지정한다.
<classpath path="${classpath}"/>를
<classpath>
<pathelement path="${classpath}"/>
</classpath>
로 사용 할 수 있다.
pathelement를 사용한 경우 먼저 선언한 패스부터 클래스패스를 잡을 수 있다.예로 같은 클래스가 a.jar파일과 b.jar파일에 존재하고, a.jar가 먼저 선언되어있다면 a.jar의 클래스를 사용한다.
fileset타입으로 경로를 설정하기도 하는데 이때 클래스패스의 순서는 보장하지 못 한다.
<classpath를 나타내는 여러가지 ㅇㅖ>
<classpath>
<pathelement path="${classpath}"/>
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement location="classes"/>
<dirset dir="${build.dir}">
<include name="apps/**/classes"/>
<exclude name="apps/**/*Test*"/>
</dirset>
<filelist refid="third-party_jars"/>
</classpath>
${classpath} 디렉토리
lib디렉토리 이하의 모든 jar파일
classes디렉토리
${build.dir}디렉토리내에 apps/**/classes패키지를 포함하고 패키지명에 Test문자를 포함하는 패키지는 제외한다.
id가 third-party_jars인 파일 리스트를 참고한다.
<path id="project.class.path">
<pathelement location="lib/"/>등으로 해놓고
<classpath refid="project.class.path>등으로 사용한다.
FILE SET
파일과 디렉토리의 집합을 나타내는 타입이다.
Example
<fileset dir="${server.src}">
<include name="**/*.java"/>
<exclude name="**/*Test*"/>
</fileset>
참고
<classpath>
<pathelement path="${classpath}"/>
<pathelement location="lib/helper.jar"/>
</classpath>
location
속성은, 프로젝트의 기본 디렉토리(또는 절대 파일명의)에 대해서 단일의 파일 또는 디렉토리를 지정합니다,
한편 path
속성은 콜론- 이나 세미콜론- 으로 단락지어진 위치의 리스트를 받아들입니다.
path
와 location
속성을 지원한 <classpath>
태그를 기술하는 지름길로서:
<classpath> <pathelement path="${classpath}"/> </classpath>
는 다음과 같이 단축할 수가 있습니다.
<classpath path="${classpath}"/>
게다가, DirSets, FileSets, 와 FileLists 는, 내부에 <dirset>
, <fileset>
, 과 <filelist>
요소로 지정할 수가 있습니다. 주의:경로같은 것들의 구조에 FileSet를 빌드하는 파일이 추가되는 순서는 정의되지 않고 있습니다.
<classpath> <pathelement path="${classpath}"/> <fileset dir="lib"> <include name="**/*.jar"/> </fileset> <pathelement location="classes"/> <dirset dir="${build.dir}"> <include name="apps/**/classes"/> <exclude name="apps/**/*Test*"/> </dirset> <filelist refid="third-party_jars"> </classpath>
이것은, ${classpath}
의 값에, lib
디렉토리 안의 모든 jar 파일, classes
디렉토리, ${build.dir}
의 apps
서브 디렉토리 아래의 모든 classes
라고 명명된 디렉토리를 추가한 path를 구축합니다. 단, 이름에 Test
를 포함한 경우와 FileList로 지정된 파일은 제외됩니다.