2017-01-17 15 views
0

Я использую Spring Cloud Contract 1.0.2.RELEASE, и я могу опубликовать stucs в своем локальном репозитории Maven.Spring Cloud Контракт: не удалось решить последнюю версию заглушек в локальном репо

На стороне потребителя, то я могу настроить тест с:

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

«+» должно означать я получить последнюю версию, доступную в моем местном репо, но это не решает зависимость , Однако, если я даю точную версию вместо «+», то она работает.

Что мне не хватает?

ответ

0

Если вы входите в отладку, вы увидите, что в какой-то момент вы достигнете класса org.eclipse.aether.internal.impl.SimpleLocalRepositoryManager (расположенного в aether-impl-1.0.2.v20150114.jar для меня), в который есть этот метод:

public LocalMetadataResult find(RepositorySystemSession session, LocalMetadataRequest request) 

чтобы решить эту версию в местном репо, он будет пытаться найти Maven-метаданных local.xml файла в директории артефакта в локальном репозитории Maven (еще ниже):

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, где ожидает менеджер репозитория: он должен быть создан, когда вы установили заглушки в вашем местном репо.

Иногда случается, что у вас есть только удаленный, т. Е. Maven-metadata.xml - в этом случае разрешение баночки не получится.

Смежные вопросы