우리는 Buildr을 사용하여 응용 프로그램을 .war 파일로 패키지화하고 있습니다. 더 자동화 된 배포 프로세스를 간소화하기 위해, 나는두 파일 중 하나를 Buildr과 함께 .war 패키지에 조건부로 포함시키는 방법은 무엇입니까?
database-hsql.properties
database-postgres.properties
... 조건 (디렉토리 src/main/resources
에서)이 두 파일 중 하나를 선택하고자 ... 그리고 것 결과는 .war에 database.properties
이라는 이름으로 포함시킵니다. (예 : WEB-INF/classes/
, 즉 src/main/resources
의 파일이있는 WAR 내부의 동일한 위치)
이 작업을 수행하는 간단한 방법은 무엇입니까? 모든 접근 방식은 괜찮습니다 — 예 : "package-hsql"& "package-pgsql"—과 같이 두 가지 다른 작업/대상을 정의하는 것 (간단히 말해서)은 매우 간단합니다. buildfile
의
관련 비트 :
load 'dependencies'
require 'buildr/hibernate'
desc "..."
define "foo" do
project.version = VERSION_NUMBER
project.group = GROUP
manifest["Implementation-Vendor"] = COPYRIGHT
compile.with WICKET,GUAVA,GSON, ... [many more libs]
test.with MOCKITO
resources
test.compile.with SERVLET,_('src/main/webapp'),_('src/main/resources')
package(:war).with(:libs=> [WICKET,GUAVA,GSON, ... ])
end
보너스 질문 : 임의의 쉘 명령을 실행하는 방법을 변경하려면 두 개의 각각의 경우에 (나는 예를 들어 >>
또는 sed
관련된 무언가를 사용하십시오) 다른 설정 파일? (나는 또한 다른 파일에서 applicationContext.xml
에 db 설정을 "주입"하고 싶습니다.이 파일을 VCS에 두 개로 유지하는 것이 더 좋을 것입니다.
죄송합니다. 저는 Buildr과 함께 한 초보자이고 Ruby에 대해 잘 모릅니다. (그렇습니다. 현재 팀 구성원이 능숙하지 않은 도구를 사용하는 것이 최적의 상황은 아닙니다 ...) 무엇이든지 명확히해야하는 경우이를 지적하십시오!
대단히 감사합니다. 나는 "cp"접근법을 사용하여 작동하게했다. (지금은 약간 바쁘지만 나중에 보너스 케이스 (applicationContext.xml)를 정리해야합니다. 아마도 필터 메커니즘을 사용해야 할 것입니다.) – Jonik