2014-01-21 3 views
3

웹 응용 프로그램이 있고 그것을 빌드 할 때 gradle을 사용합니다. WEB-INF 폴더 (src/main/webapp/WEB-INF/my.xml)의 xml 파일 중 하나에 대체 할 파일이 있습니다. 빌드 과정에서 파일의 토큰을 대체합니다.

<system-properties> 
    <property name="clientId" value="@[email protected]" /> 
</system-properties> 

내가 사용하는 일부 값으로 토큰을 대체하려고

: I 출력 파일 (./build/exploded-app/WEB-INF/my.xml)의 토큰이 대체되지 않습니다 gradle build을 실행할 때보다

processResources{ 
    filter(ReplaceTokens, tokens:['clientId': 'test']) 
} 

. 이 작업을 수행하는 데 올바른 방법이 궁금합니다.

답변

4

문제는 잘못된 작업을 구성하고 있다는 것입니다. processResources은 src/main/resources (또는 기본 sourceSet에서 자원으로 정의한 다른 것)의 파일 만 복사하지만 을 복사/압축하는 것은 war 작업입니다.

war { 
    filter(ReplaceTokens, tokens:['clientId': 'test']) 
} 
+4

'ReplaceTokens'는'build.gradle'에'import org.apache.tools.ant.filters.ReplaceTokens'를 추가해야합니다. 자세한 내용과 다른 예는 [DSL 문서 복사] (https://gradle.org/docs/current/dsl/org.gradle.api.tasks.Copy.html)를 참조하십시오. – Paul

+1

** 특정 파일 확장명 **에만 ** 어떻게해야합니까? '* .xml'? – wiradikusuma