저는 모듈 중 하나에 스프링 클라우드 - 계약 - 메이븐 플러그인을 추가 할 때까지 각 모듈이 Artifactory에 잘 배치되는 다중 모듈 프로젝트를 가지고 있습니다 (서비스, 제작자 API이므로).스프링 클라우드 계약이 Maven 다중 모듈 프로젝트의 Artifactory에 배치되지 않음
이 프로젝트는이 구조를 가지고
우리는 미래에 클라이언트와 일반을 제거하고 커플 링을 줄이기위한 소비자의 척하기 클라이언트를 가지고 있고, 내부 모듈없이 기본 프로젝트를 갖고 싶어parent
- common (shared DTOs)
- client
- service
, 하지만 지금은이 구조를 유지해야합니다.
내가 먼저 내 최초의 해결 방법은 젠킨스 파이프 라인 그것은 서비스와 스텁을 배포
sh './mvnw clean deploy -U --projects=xxx-service'
이를 추가 할 수 있었다 그래서 스텁, Artifactory에 푸시되지 않은 것으로 나타났습니다,하지만 난 그 누구도 눈치 이 명령이 실행될 때 모듈이 배포됩니다 :
[INFO] Installing /xxx/xxx-service/target/xxx-service-1.7.0-SNAPSHOT.jar to /xxx/.m2/repository/xxx/xxx-service/1.7.0-SNAPSHOT/xxx-service-1.7.0-SNAPSHOT.jar
[INFO] Installing /xxx/xxx-service/pom.xml to /xxx/.m2/repository/xxx/xxx-service/1.7.0-SNAPSHOT/xxx-service-1.7.0-SNAPSHOT.pom
[INFO] Installing /xxx/xxx-service/target/xxx-service-1.7.0-SNAPSHOT-stubs.jar to /xxx/.m2/repository/xxx/xxx-service/1.7.0-SNAPSHOT/xxx-service-1.7.0-SNAPSHOT-stubs.jar
[INFO]
[INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ xxx-service ---
[INFO] Deploying xxx:xxx-service:1.7.0-SNAPSHOT at end
:
sh './mvnw clean deploy -U'
는 출력의 끝입니다
모든 Maven 구성을 상위 POM 파일로 이동하고 계약 및 기본 테스트 클래스를 서비스 모듈에 보관하려고했습니다. 나는 this page을보고 플러그인을 구성하는 방법을 설명했으며 contractsDirectory를 사용하여 계약 파일 디렉토리, 생성 된 테스트의 디렉토리를 지정하는 gmavenplus-plugin 및 기본 패키지를 지정하는 packageWithBaseClasses를 사용할 수 있음을 확인했습니다. 수업. 그러나 기본 클래스의 디렉터리를 지정할 방법이 없습니다. mock을 생성하기 위해 서비스 클래스의 일부 클래스를 사용하기 때문에 기본 테스트 클래스를 상위 클래스로 이동할 수 없습니다.
계약을 수행하는 방법이 있습니까? 아니면 계약서에 별도의 프로젝트를 만들어야합니까? 사전에
감사
샘플을 업로드하여 확인할 수 있습니까? –
프로젝트의 축소 버전을 만들었으므로 제대로 작동하므로 하나의 모듈로 다른 프로젝트에서 발생하지 않는 일부 구성과 충돌이 발생합니다. 문제는 spring-boot-startter-parent를 확장하는 사용자 정의 부모 프로젝트로 인해 발생합니다. 해당 부모의 코드를 복사하면 API가 잘 작동하지만 확장하는 경우에는 작동하지 않습니다. 흥미롭게도 플러그인 구성에서 행을 제거하지만 스텁을 생성하지 않으면 작동합니다. 더 많은 정보를 계속 조사하고 게시 할 것입니다. 감사합니다 –
rafaborrego
그것은 https://issues.apache.org/jira/plugins/servlet/mobile#issue/MDEPLOY-193 여기에 설명 된 것과 관련이있는 것으로 보입니다 : https://stackoverflow.com/questions/36328154/maven- deploy-plugin-deployatend-not-working. 플러그인이 어떻게 충돌하고 해결할 수 있는지 알아 내려고 노력할 것입니다. – rafaborrego