2011-02-01 4 views
0

적용 작업을 사용하여 내 프로젝트에서 Sass 스크립트를 "컴파일"하는 Ant 태스크를 작성하려고했지만 계속 "해당 파일이나 디렉토리가 없습니다 "오류. 필자는 빌드 패스의 공간으로 인해 발생할 것으로 생각 했으므로 경로를 반환 할 때 앤트가 파일 세트의 루트 디렉토리를 생략하는 것으로 만 프로젝트를 이동하는 문제를 겪었습니다. ...매퍼를 사용할 때 앤트 파일 세트의 "dir"이 절대 경로에서 누락되었습니다.

/사용자/

<target name="sass-compile" depends="properties"> 
    <apply executable="sass"> 
     <srcfile /> 
     <targetfile /> 

     <fileset dir="${project.src.dir}" includes="**/*.scss" /> 
     <globmapper from="*.scss" to="*.css" /> 
    </apply> 
</target> 

문제 해결을 돕기 위해, 나는 반향 말대꾸에서 실행 파일을 전환하고 난 매퍼이 같은 변화 경로 인 것으로 나타났습니다 :이 같은 목표는 모습입니다 이에 나/문서/프로그래밍/작업/프로젝트/SRC /java/com/proj/web/page/template/Template.scss

...

/Users/me/Documents/Programming/workspace/Project/java/com/proj/web/page/template/Template.css

src 디렉토리는 대상 파일 경로에서 누락 된 사항 것을 . 내가 여기에 버그가 보이거나 어떻게 든 예상됩니까? 나는 여기서 무슨 일이 일어나고 있는지 알고 싶다. 나는 또한 regexpmapper와 replacestring을 가진 filtermapper를 사용해 보았습니다. 결과는 같습니다.

저는 Mac에서 실행되는 Eclipse Helios와 번들로 제공되는 Ant 1.7.1을 실행하고 있습니다. 또한 Mac과 Linux에서 Ant 1.8을 시험해 보았습니다. 아무것도 작동하지 않습니다. 누구든지 아이디어가 있습니까?

답변

0

정상적인 동작입니다. 매퍼는 상대 경로를 사용하지만 절대 경로는 사용하지 않습니다. 경로는 작업 디렉토리 (아마도 기본 디렉토리)가되며, 귀하의 경우 src 디렉토리의 부모입니다.

단일 매퍼 의존성 체크를위한 최종 도착 특성 에 대하여 파일 대상을 지정

apply task (글로브) 맵퍼는 dest 속성에 지정된 디렉토리의 상대 경로를 제공한다. 속성을 지정하면 을 기본 디렉토리로 사용하여 상대 경로 이름을 매퍼가 반환합니다. 하나 이상의 파일 세트 또는 파일 목록이 필요합니다.

사용 된 상대 경로는 지정된 파일 세트에서 파생되므로, 앞에 src 디렉토리가 없습니다.마음에 와서

옵션은 다음과 같습니다

  • 에 이명 령을 설정 <apply dest="src" ... (더 나은)
+0

를 사용하여 디렉토리를 지정 (작동 할 수 있습니다) 대신 project.src.dir의 프로젝트의 basedir를 사용하여 적용 작업이 트릭을했습니다. – spaaarky21

0

매퍼가 ${project.src.dir}의 내용으로 작업하는 것처럼 보입니다. 폴더 자체는 제외됩니다.

src의 상위 폴더를 ${project.src.dir} (예 : ${basedir})으로 지정하고 원하는 결과가 나오는지 확인해 볼 수 있습니까?