WAR 플러그인 작업의 리소스 파일을 Gradle로 바꾸려고합니다.Gradle이 리소스 파일을 WAR 플러그인으로 바꿉니다.
은 기본적으로 저는 두 리소스 파일이 있습니다
database.properties
database.properties.production
는 내가 달성하고자하는 교체입니다 'database.properties'WEB에서 최종 WAR 파일에 'database.properties.production'와 -INF/classes. 이 (
war {
webInf {
from ('src/main/resources') {
exclude 'database.properties'
rename('database.properties.production', 'database.properties')
into 'classes'
}
}
}
을하지만 다른 모든 리소스 파일이 중복 database.properties 포함, 중복으로 발생합니다
나는 많은 것들을 시도했지만 나에게 가장 논리적 인 작동하지 않습니다 다음이었다 같은 이름을 가진 다른 파일들) 그리고 여전히 database.properties.production은 WAR에 있습니다.
중복이없고 WAR에서 database.properties.production이없는 깨끗한 솔루션이 필요합니다.
그냥 시도하고 작동하지 않는 Gradle을 1.11으로이 솔루션을 테스트했다. 그것은 효과가없는 것 같습니다. : S –
코드를 업데이트하여 제대로 작동하는지 확인했습니다. 요컨대, 기존 구성 (이 경우에는 'war' 플러그인으로 수행되는 구성)을 변경하는 것이 필요에 맞지 않습니다. 까다로울 수 있습니다. 때로는 문제를 다르게 해결하는 것이 좋습니다. 이 경우, 하나의 대안은'processResources.doLast' {...}에서 "잘못된"파일을 삭제하고 다른 파일의 이름을 바꾸는 것입니다. 또는 파일을'src/main/resources'가 아닌 다른 곳에 넣고 필요할 때 수동으로 포함시킬 수 있습니다 ('war.webInf.from ...'). 가장 적합한 솔루션은 정확한 요구 (IDE 통합 등)에 달려 있습니다. –
효과가있었습니다. 감사. 이 방법을 선택하는 이유는 최소한의 작업이 필요했기 때문입니다. 나는 별도의 위치에 속성을 유지하고 싶지 않습니다. 이 방법을 사용하면 IDE로 작업 할 때 코드에서 database.properties에 테스트 데이터베이스가 표시되고 WAR를 생성 할 때 프로덕션 데이터베이스를 설정한다는 것을 알 수 있습니다. –