우리는 Maven을 사용하여 마이크로 서비스 간의 의존성을 정의하고 관리합니다. 다음은 예입니다Maven을 사용하여 마이크로 서비스 간의 다중 종속성 관리
Microservice 1
<artifactId>ms-1</artifactId>
<version>0.25.04-SNAPSHOT</version>
<dependencies>
<dependency>
<artifactId>ms-2</artifactId>
<version>0.25.00-SNAPSHOT</version>
</dependency>
</dependencies>
Microservice 2
<artifactId>ms-2</artifactId>
<version>0.25.00-SNAPSHOT</version>
<dependencies>
<dependency>
<artifactId>ms-3</artifactId>
<version>0.28.00-SNAPSHOT</version>
</dependency>
</dependencies>
문제는 릴리스 단계가 시간을 많이 복용하고 완전 수동입니다 것입니다 :
- 수행 0 제 microservice위한 1,234,355,종속성의
pom.xml
의 버전 - 번째 microservice위한
mvn:release
수행 - 변화 (
-SNAPSHOT
을 제거) 등 - 및 (실제로는 15 microservices에 ...) (
-SNAPSHOT
을 제거)
계단식으로이 릴리스를 수행 할 수있는 자동화 된 방법이 있는지 궁금합니다.
감사합니다.
흥미로운 점은 Maven 애그리 게이터에 대해 몰랐습니다. 내가 옳은지 다시 한번 생각해 보도록하겠습니다. 필자는 모든 마이크로 서비스를 모듈로 정의한 전용 POM 프로젝트를 만든 다음 릴리스를 수행하기위한 목표를 호출하는 것이 좋습니다. – frinux
@frinux 맞습니다. [POM 참조, 집계] (https : //maven.apache.org/pom.html # Aggregation) 및 [Maven : 전체 참조, 3.6.2. 다중 모듈 대 상속] (http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-best-practice.html#pom-relationships-sect-multi-vs-inherit) 기본 정보. 단계, 플러그인, 목표 등이 함께 작동하는 방법은 [이 답변] (http://stackoverflow.com/a/30953905/1744774)을 참조하십시오. –
언급 한 것을 잊어 버린 세부 사항이 있습니다. 마이크로 서비스는 생성 된 JAR (HTTP 클라이언트)을 통해 서로를 소비하지만, Maven 릴리스 시점에는 존재하지 않습니다. 빌드 타임에 모듈이 없다면 모듈을 선언하는 것은 불가능한 것 같습니다. 틀렸습니까? – frinux