2017-12-11 1 views
0

Maven에서 Gradle 4.4로 이전 중입니다. 같은 섹션이 여러 받는다는 프로파일이 있었다 :문자열 템플릿 (Gradle) 대체 방법

같은 .xml, .properties 등 내가 mvn wildfly:deploy -Pdeploy-14를 실행 할 수 있었다 얻은 같은 여러 리소스 파일에서 ${module.suffix} 많이 있습니다
<properties> 
    <module.suffix>-14</module.suffix> 
    <wildfly.hostname>10.***.***.14</wildfly.hostname> 
</properties> 

war 모두 올바른 접미사와 함께 배포 파일. 문제는 다음과 같습니다. Gradle에서 동일한 작업을 수행하는 방법은 무엇입니까? 저는 Gradle을 처음 접했지만 현대적인 강력한 도구라고 믿습니다. 쉽게 해결할 수 있어야합니다. 도움말.

P. 마이 그 레이션의 다음 단계는 Gradle Wildfly 플러그인을 설정하는 것입니다. 나는 그것을 아직 시도하지 않았다. 그래서 유용한 조언이 있으면 환영한다.

Gradle task replace string in .java file 도움을받지 못했습니다. (모든 답변을 시도했지만 올바르게했는지 확신 할 수 없습니다.)

UPD. 나는이

processResources { 
    def params = [moduleSuffix: 'moduleSuffix'] 
    from 'src/template/resources', { 
     expand params 
    } 
} 

expand 말씀을 할 때 밑줄 IDEA 내가 제이보스 플러그인까지 대체로 처리하는 것에 대해 확실하지 않다

+0

두 분 모두 시도한 다음 의견을 게시하겠습니다. –

답변

0

"캔트 해결 기호가 '확장'"라고한다, 일반적으로 Copy task typeexpand method을 통해 대부분의 대체를 처리 할 수 ​​있습니다. 그것은 나를라면

processResources { 
    expand project.properties 
} 
0

것은, 내가 추가 "작업"을 피하기 것 : 자바 플러그인에서 기본 processResources 작업은 그래서 자원에 값을 대체 이런 종류의 그렇게 (기본 예)와 같은 작업을 수정하여 수행 할 수있다 이 "템플릿"리소스를 src/template/resources에 넣음으로써 그러면 대부분의 리소스를 구문 분석하여 ${...} 자리 표시자를 찾을 필요가 없습니다. 그런 다음 @ChrisArnold가 제안한대로 processResources 작업에서 expand(Map) 메서드를 사용할 수 있습니다.

processResources { 
    from 'src/template/resources', { 
     expand project.properties 
    } 
} 
+0

나는 뭔가 잘못하고있다. 이 태스크를 변경하고 클린 빌드를 실행하면': processResources UP-TO-DATE 1ms'가 표시됩니다. 그리고 build dir이나 .war 파일에는 리소스 파일이 없습니다. –