2014-03-26 1 views
1

우리는 고객 중 한 명을 위해 자바 웹 사이트/플랫폼을 개발했습니다.java webapps 및 github - properties 파일에 대한 기존 프로젝트 opensourcing

데이터베이스 속성 (사용자 이름, 암호 등), 프로젝트의 src/main/resources/*.properties 예를 들어 database-live.properties, database-dev.properties에 저장된 고객이하고자 결정했다

database-local.properties된다 자신의 플랫폼을 오픈 소스하고, 개인 bitbucket 저장소에서 공개 github 저장소로 이동하십시오.

개인 저장소에 공개되지 않아야하는 개인 데이터베이스 속성이 있기 때문에 문제가됩니다.

그러므로 bitbucket에서 기록을 전송하지 않고 대신 빈 등록 정보로 src/main/resources/*.properties에있는 사용자, 비밀번호 등을 사용하여 github에서 깨끗한 저장소를 만듭니다. 그러면 bitbucket repo가 ​​닫히고 로컬 컴퓨터와 라이브/dev 컴퓨터의 origin이 github repo로 변경됩니다.

라이브 및 dev 상자에서 우리는 여전히을 github에서 사용할 수 있고 mvn clean install을 실행할 수 있지만 올바른 db 세부 정보를 사용합니다.

이렇게하는 가장 좋은 방법은 무엇입니까? .gitignore에 속성 파일을 추가 한 다음 다양한 컴퓨터의 로컬 저장소에서 해당 환경에 대한 정확한 세부 정보로 파일을 편집해야합니까?

우리는 어쨌든 구성을 외부화해야하며, 어떻게하면 maven 빌드를 할 때 포함시켜야합니까? 그 일을하는 가장 좋은 방법은 무엇일까요?

일반적인 사용 사례처럼 보이지만 어쩌면 잘못된 방향으로 가고있을 수도 있습니다.

답변

0

우리는 오래 전에 비슷한 문제에 직면했습니다. 여기에 우리가 한 일이 있습니다 :

각 항목이 나타내는 내용을 나타내는 예제와 주석이있는 구성 파일을 일반화했습니다. 처음 시도하는 사람이 쉽게 알아볼 수 있도록 노력하고, 각각의 의미를 이해하고 응용 프로그램의 동작에 미치는 영향을 이해합니다.

그런 다음 배포에 사용될 설정 파일에 대해서만 별도의 저장소 (deployment-configs라고 함)를 유지 관리했습니다. 여기에는 구성 데이터, 사용자 이름 및 비밀번호 등이 포함 된 모든 xml 파일 및 등록 정보 파일이 들어 있습니다.

그런 다음 로컬 변수로 작업했습니다. 배포하는 동안 배포 스크립트는 deployment-configs repo에서 구성 파일을 가져와 응용 프로그램 리포지토리의 구성 파일로 바꿉니다.

하루가 끝날 무렵 우리는 소스를 공개하지 않았습니다. 그러나 우리는 성공적으로 앱 레포에서 실제 값으로 설정 파일을 분리하는 작업을 마쳤습니다.

+0

거의 정확히 내가 한 일입니다. 우리는 * .properties를 * .properties.template으로 이름을 바꾼 다음 dev 및 프로덕션 구성이있는 별도의 개인 repo를 가지고있었습니다. – kabal