'pathmap'에 해당되는 글 1건

  1. 2008.12.09 Buildr : 리소스 교체 3

리소스 필터링이 리소스 파일의 내용을 변경하는 것이라면, 리소스 교체는 원본 리소스 파일을 환경에 적합한 다른 리소스 파일로 교체하는 것입니다. 
예를 들어 개발서버 환경에서는 로컬PC 환경과 다른 설정값을 갖는 web.xml 파일이 사용되어야 한다면, 개발서버 환경용 web.xml.dev 파일을 만들고 개발 빌드시에 web.xml.dev => web.xml 식으로 파일 자체를 바꾸는 것입니다.
 
Ant에서 리소스 파일교체는 다음처럼 처리할 수 있습니다.

<copy todir="'target/webapp/WEB-INF" overwrite="true" preservelastmodified="true" verbose="true">
     <fileset dir="'target/webapp/WEB-INF" includes="**/*.dev" />
     <mapper type="glob" from="*.dev" to="*" />
</copy>


Buildr에서는 이렇게 처리할 수 있습니다. 

FileList['target/webapp/WEB-INF/**/*.dev'].each do |file|
    cp file, file.pathmap('%X'), :preserve=>true, :verbose => true
end

*.dev 파일을 골라내기 위해 FileList[glob패턴]을 사용했고, 각 파일들을 순회하면서 이름을 바꿔서 복사합니다.
여기서 pathmap이라는 메소드가 보이는데요, rake에서 String 클래스을 상속하여 추가한 메소드입니다.
pathmap이 받는 패턴 중에서 %X는 파일전체 패스에서 파일 확장자를 제외한 나머지 문자열을 리턴합니다. 'aa/bb.xml.dev'.pathmap('%X')는 'aa/bb.xml'을 리턴하죠.

'Build&Deploy > Buildr' 카테고리의 다른 글

Buildr : 아티팩트 다운로드 받기  (0) 2008.12.17
Buildr : 타스크 의존 관계  (0) 2008.12.11
Buildr : 리소스 필터링  (0) 2008.12.09
Buildr : 파일집합 복사하기  (0) 2008.12.05
Buildr : 파일 집합 선택  (0) 2008.12.01
Posted by 에코지오
,