서문 :메이븐 + SSDM은 빌드 및 런타임 환경 자동화
내 회사, 가장 좋아하는 여러 런타임 환경과 자신이 다양한 항아리의 다른 버전으로 구성되어 여러 릴리스 버전이 있습니다.
예를 들어, 우리가 개발자 컴퓨터, 테스트 또는 생산에 배포 할 수 있습니다 릴리스 버전 1.1, 1.2, 및 소프트웨어 X 1.3을 생각해 보자.
Software-x-1.1 자체는 jarA-0.9.1과 jarB-0.7.5로 구성되어 있지만 software-x-1.3은 jarA-1.7.31과 jarB-0.8.1로 구성됩니다.
현재 우리는 (예 : 데이터베이스 자격 증명 등) 런타임 변수를 구성하지만, 속성 또한 릴리스 버전으로 변경하는 Spring의 PropertyPlaceholderConfigurer와를 사용합니다.
또한 Maven 2 POM 버전 4를 사용하여 코드의 어떤 버전을 사용해야하는지 지정합니다. 우리는 jar의 버전 번호를 부모 pom 내부의 프로파일 (dev, test, prod) 내의 속성으로 배치 한 다음 모든 프로젝트 poms의 해당 버전 번호를 참조합니다.
지금 현재, 우리는 버전이 최신이 아닌 다른 주어진 자료와 관련있는 프로젝트를 지정하는 방법이 없습니다. 또한 런타임 구성을 SSDM 픽업에 배포합니다. 그러면 SSDM 픽업은 소프트웨어의 빌드 된 버전으로 정의 된 서비스를 구성하고 만듭니다.
-
질문 :
우리는 단지 런타임 환경과 버전 번호를 제공하여 우리의 제품을 구축하는 데 사용할 수있는 절차/도구가 있습니까? IE "빌드 1.1 dev"?
어쨌든 각 릴리스 빌드에 필요한 jar 버전을 저장할 수 있습니까? 우리는 현재 부모 pom을 포함하여 모든 파일을 버전 화하고 있지만 단순히 부모 pom을 버전 관리하면 해당 부모 pom과 관련된 릴리스 버전이 기록되지 않습니다.
빌드 프로세스를 자동화하기 위해 우리가 할 수있는 다른 조치는 무엇입니까? 예를 들어
, 우리는 올바른 방향으로 단계가 될 것 부모 치어 내에서 런타임 구성을 관리 할 수 있지만,이 범위를 위반처럼 보인다합니다.
우리의 프레임 워크 이외의 모든 도구가 아니라 먼 미래에,이 시점에서 생각할 수있다.
요약 :
우리가 어떻게 오류가 발생하기 쉬운되지 않고 최대한 우리의 빌드 프로세스를 자동화 할 수 있습니다? 이 테스트의 차이점을 처리하기 위해 프로필을 사용하는 올바른 방법이 될 것 같았다 소프트웨어 X의 출시 버전 1.1, 1.2 및 1.3에 대한 부분을 바탕으로
개발 모듈 계층 구조 외부에 별도의 릴리스/어셈블리 모듈을 갖는 것이 합리적입니까? 나는이 릴리스에서 사용 된 종속성을 나열하는 Software X의 pom을 생각하고 있습니다. 그러나 귀하의 사례를 명확하게 이해하지 못합니다. – lexicore
질문을 명확히하기 위해 제공 할 수있는 것이 있습니까? 상황이 다소 복잡해 졌기 때문에 나는 힘든 시간을 보냈다 ... – Randy