2017-01-17 9 views
0

스프링 클라우드 계약 1.0.2.RELEASE를 사용 중이며 로컬 Maven 레포에 stucs를 게시 할 수 있습니다. 소비자 측면에서 스프링 클라우드 계약 : 로컬 레포의 최신 스텁 버전을 해결할 수 없습니다.

, 그때 내 시험을 구성

@AutoConfigureStubRunner(ids = {"com.myGroup:myArtifactt:+:8080"}, workOffline = true) 

"+"내 지역의 repo에서 사용 가능한 최신 버전을 얻을 것이다 뜻,하지만 의존성을 해결하기 위해 실패 . 그러나 "+"대신 정확한 버전을 제공하면 작동합니다.

무엇이 누락 되었습니까?

답변

0

디버그 상태로 가면 어떤 시점에서 org.eclipse.aether.internal.impl.SimpleLocalRepositoryManager 클래스 (나를 위해 aether-impl-1.0.2.v20150114.jar에 있음)를 볼 수 있습니다. 이 방법 거기있는 :

public LocalMetadataResult find(RepositorySystemSession session, LocalMetadataRequest request) 

이 지역의 repo의 버전을 해결하려면,합니다 (다른 지역 메이븐 저장소에 이슈 디렉토리 아래에 받는다는 - 메타 데이터 local.xml 파일을 찾으려고 것 아래 블록) :

RemoteRepository remote = request.getRepository(); 

    if (remote != null) 
    { 
     path = getPathForRemoteMetadata(metadata, remote, context); 
    } 
    else 
    { 
     path = getPathForLocalMetadata(metadata); 
    } 

    File file = new File(getRepository().getBasedir(), path); 

파일이 존재하지 않으므로 로그인하지 않습니다. 저장소 관리자가 예상하는 maven-metadata-local.xml이 있는지 확인하십시오. 스텁을 설치할 때 만들어 져야합니다. 귀하의 지역 repo.

maven-metadata.xml과 같은 리모컨 만있는 경우가 있습니다.이 경우 jar 확인이 실패합니다.