2014-03-31 2 views
2

우리는 .ear 프로젝트와 여러 개의 종속 .jar 프로젝트가 있으며 Maven을 사용하고 있습니다. 각 프로젝트에는 자체 속성 파일이 있지만 내부 속성에는 특정 값이 없지만 자리 표시 자 (예 :Eclipse에서 응용 프로그램을 게시 할 때 속성 파일의 내용을 바꿉니다.

database.url=${database.url} 

$ {database.url}은 자원 플러그인을 사용하여 Maven 빌드 프로세스 중에 바뀝니다. 그래서 각 단계 (로컬, 테스트, 통합, 생산) 우리는 필터를 정의하는 다른 메이븐 프로파일을 가지고, 그래서 우리는 테스트 단계에 대한 구축 할 경우 우리가

database.url=url.for.test.db 

응용 프로그램은 WLS (12)에서 실행되는 뭔가를 얻기 위해, Eclipse 서버 플러그인 (우리는 Eclipse Kepler 사용)을 사용하여 로컬 WLS에 배포하려고합니다. 그러나 Eclipse에서 서버에 응용 프로그램을 추가하고 게시 할 때 속성 파일의 자리 표시자가 특정 값으로 대체되지 않기 때문에 응용 프로그램이 작동하지 않습니다. 물론

<workspace>\.metadata\.plugins\org.eclipse.core.resources\.projects\<ear-project-name>\beadep\<WLS domain name>\<ear-project-name> 

우리가 그 위치에서 속성 파일을 변경할 수 있지만, 우리는 이클립스에 게시 할 때마다, 이러한 변경 사항을 덮어 씁니다 우리가 얻을 :

AFAIK, 내용은 Eclipse 작업 공간에 위치하고 전개되고 다시 원래 속성 파일

database.url=${database.url} 

WLS에 배포 할 때는 쓸모가 없습니다.

Eclipse에서 WLS로 배포하기 전에 속성 파일을 변경할 수있는 메커니즘이나 가능성이 있습니까?

도움 주셔서 감사합니다. "

내가 명명 된 .ear 프로젝트에 새 폴더를 추가 : 여기에 좋아

답변

0

내가이 문제를 해결하기 위해 선택한 솔루션 (나는 그것이 최고의 하나인지 잘 모르겠지만, 적어도이 작동)입니다 속성 - 로컬 ". 이 폴더에는 로컬 배포와 관련된 속성 파일 만 포함됩니다 (예 : 자리 표시 자 없음). 이클립스 프로젝트의 속성 고급형 아파트 = url.for.local.db

database.url는 "절 배포 총회"가있다. 새로운 "properties-local"폴더를 배포 경로 APP-INF/classes에 추가 했으므로 로컬 배포에 사용되는 .ear에 나타날 위치입니다.

원격 스테이지 용 .ear 파일을 작성하는 maven-ear-plugin은 로컬 디렉토리 속성을 인식하지 못합니다.

솔루션의 단점은 특성 파일이있는 두 개의 폴더가 있다는 것입니다. 즉, 로컬 Eclipse 배치 용 폴더 하나와 원격 서버에 배치 된 .ear 파일 용 폴더가 있습니다.