Javac 작업으로 컴파일 할 파일을 정확하게 나타내려면 FileSet을 사용하고 싶습니다. 나는 함축적 인 행동을 원하지 않는다. 그러나 이것에 대한 나의 시도는 실패했다. 여기에 내가 지금까지 무엇을 가지고 있습니다 :Ant : javac 작업에서 파일 세트 사용
내 모든 소스 파일을 포함하는 FileSet.
<fileset id="srcfiles" dir="${srcdir}">
<include name="**/*.java"/>
</fileset>
그리고 대상을 javac으로 전달하려고합니다. 이 날이 오류주는
<target name="build">
<javac srcdir=".">
<fileset refid="srcfiles"/>
</javac>
</target>
: 개미 문서를 읽고 나면 javac doesn't support the nested "fileset" element.
, 나는 fileset
에서 sourcepath
로 가장 안쪽 태그를 변경했습니다. 이것은 파일이 컴파일되었다는 의미에서 작동했지만 여전히 오류가 발생했습니다 : srcfiles doesn't denote a path
. 소스는 암묵적인 규칙으로 인해 컴파일 된 것뿐입니다.
컴파일 할 개별 파일을 명시 적으로 javac에 알릴 수 있습니까? 또는 단순히 Ant가 어떻게 작동해야하는지가 아닌가? 소스 파일을 식별하는 것이 빌드 프로세스의 중요한 부분 인 C++ 배경에서 왔습니다. 그러나 Java의 파일 이름 지정 및 디렉토리 구조 요구 사항을 고려할 때 암시 적으로 **/*.java
패턴 규칙이 모든 사용 사례를 다룹니다.
현재, 예, 특정 디렉토리에서 모든 * .java 파일을 컴파일 중입니다. 나는 변화가 생길 때를 대비하여 일반적인 해결책을 원한다. 그러나, 내가 그것에 대해 생각할수록 Java 프로젝트에서 변경 될 것이라고 확신하지는 않습니다 ... –
Ussually 자바 프로젝트에서 먼저 프로젝트의 디렉토리 구조에 대해 고려해야합니다. 'standart'방식은 당신이 ** build와 src ** dir이 있어야한다는 것입니다. 다른 디렉토리는 선택 사항입니다. 쉬운 방법은 maven 디렉토리 구조에서 보겠습니다 :) – martinusadyh
Java 디렉토리 구조 [표준 디렉토리 레이아웃 소개] (http : //maven.apache .org/guides/introduction/introduction-to-the-standard-directory-layout.html) – martinusadyh