Подстановки зависимостей Gradle - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь использовать функцию замены зависимостей Gradle, как указано в официальной документации здесь: Gradle Documentations .

Согласно строкам, указанным в конце абзаца, во время сборки MultiProject, определенные мной как процесс очистки и сборки проекта, указывают на то, что когда я очищаю и строю проект root вместо построения зависимости, которая заменяется загружаемым файлом.

Root Project build.gradle

buildscript {
    repositories {
            (.. content committed ..)
    }
}

plugins {
    (.. content committed ..)
}

configurations.all {
        resolutionStrategy.dependencySubstitution {
            substitute project(":base-api") because "we use a stable version of base-api" with module("com.xyz:base-api:0.0.1")
        }
}
   
allprojects {
    
    repositories {
        mavenLocal() 
        mavenCentral()
        jcenter()
    }
    
    group = 'com.xyz'

        (.. content committed ..)

    dependencies {
        implementation project(":base-api")
    }
    
    test {
        useJUnitPlatform()
    }
}

subprojects {
   
    (.. Tasks and blocks related to publishing ..)
}

Root Project setting.gradle

rootProject.name = 'abc'

include ':base-api'
(.. other subprojects ..)

С приведенной выше конфигурацией, когда я выполняю чистую и строю проект root, он все еще пытается построить локальный проект. Итак, все, что я хотел знать, это

  1. Я что-то упускаю здесь о том, как это делается правильно?
  2. Также каков предложенный правильный способ использования работы со сборками нескольких проектов, когда в сценарий, в котором разработчик должен работать только с одним из подмодулей, а разработчик не тратит время на создание чего-то, что не имеет отношения к разработчику.

Изменить: также забыл упомянуть, что Я попытался добавить блок configuration.all {} ко всем проектам, но это не помогло.

Edit2: прочитал ключевую зависимость, которая была удалена по ошибке

1 Ответ

0 голосов
/ 13 июля 2020

В существующем виде, в вашей конфигурации есть проект abc и подпроект base-api, ч / б зависимости нет, потому что вам не хватает зависимостей в ab c

dependencies {
    implementation project(":base-api")        
}

примечание - сборка по-прежнему будет выполнять сборку подпроекта base-api, но не будет использовать ее в сборке abc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...