2016-01-29 3 views
0

Мы используем gradle в качестве инструмента построения и сонатного типа для хранения проектов третьих сторон и публичных артефактов.Блокировка Nexus/Gradle specificc версии

Существовал последние обновления для публичного артефакта сказать com.abc:cde:3.4.2, в котором наш проект использует com.abc:cde:3.4.1

Однако, во время выполнения сборки, Gradle тянет последняя версия артефакта, даже если сборка явно указанные для загрузки только 3.4.1

compile 'com.abc:cde:3.4.1' 

есть ли способ, чтобы загрузить только конкретную версию зависимости, даже если связь имеет самую последнюю версию артефактов

+1

То, что вы описываете, на самом деле невозможно, если какой-либо другой компонент не втягивает новую версию артефакта. Вы можете использовать зависимости «gradle», чтобы узнать, откуда они взялись. – Henry

+0

Полезно знать о зависимостях градиентов – user6930

ответ

2

Вы можете форсировать номера версий с помощью usin g - стратегия разрешения конфигурации.

например.

configurations.compile { 
    resolutionStrategy { 
     force 'com.abc:cde:3.4.1' 
    } 
} 

Отъезд https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html для получения дополнительной информации.

+0

Спасибо, это лучшая практика, чтобы заставить версии для каждой необходимой зависимости? Я также обнаружил, что мы также можем принудительно использовать версии из обработчика зависимостей, однако стратегия разрешения всегда имеет приоритет. Это звучит как недостаток градиента в зависимой обработке против maven. Maven принимает версии в pom как приоритет, поэтому мне не нужно принудительно их форсировать. – user6930

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