Я пытаюсь заменить все зависимости -SNAPSHOT
на локальный подпроект. она работает нормально, но у меня есть вопрос: Я не могу определить конфигурацию проекта, который я хочу использовать (он принимает default
, который проходит runtime
, и я не хочу этого):Замена зависимостей град с конфигурацией проекта
configurations.all {
resolutionStrategy.dependencySubstitution {
all { dependency ->
if (!dependency.requested.version.endsWith('SNAPSHOT'))
return
def isRootProject = rootProject.name.equals(dependency.requested.module)
def matching = rootProject.subprojects.find {
it.name.equals(dependency.requested.module)
}
if (isRootProject)
dependency.useTarget rootProject
else if (matching)
// The specified syntax with path: and configuration: does not work. How can I do ?
dependency.useTarget project(path: ":" + dependency.requested.module, configuration: 'compile')
else
println 'Keep SNAPSHOT: ' + dependency.requested.module;
}
}
}
Я знаю, почему это не работает, документация довольно ясна: https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/DependencySubstitutions.html#project%28java.lang.String%29 не поддерживает имя конфигурации.
Есть ли известное обходное решение для этого ограничения?