Gradle - возможно ли, чтобы задачи подмодуля зависели от задач другого подмодуля? - PullRequest
0 голосов
/ 24 января 2020

Я хочу создать артефакт для проекта, используя последний код в зависимых от серии подмодулях, например, я хочу создать артефакт из модуля mod_b, используя последнюю версию кода модуля mod_a. Однако, если есть проблема с mod_a, мне нужно создать версию mod_b, используя последнюю известную исправную версию mod_a, например, заменив версию из репозитория Maven.

Я думаю о создании пользовательской конфигурации со стратегией пользовательского разрешения:

configurations {
    pinnedImplementation.extendsFrom(implementation)
}

configurations.all {
    resolutionStrategy.dependencySubstitution {
        substitute project(':mod_a') with module('com.example:mod_a:1.+')
    }
}

Теперь я могу создать 2 версии подмодуля mod_b:

// if everything is ok with mod_a and mod_b, we will publish from this project
project(":mod_b") {
    dependencies {
        implementation project(':mod_a')
    }
}

// we want to build and publish from this project only if project(":mod_b") fails to build/test using latest version of project(":mod_a")
project(":mod_b_pinned") {
    dependencies {
        // this will swap out project(':mod_a') for "implementation 'com.example:mod_a:1.+'"
        pinnedImplementation project(':mod_a')
    }
}

Есть ли способ получить задачи в project(":mod_b_pinned"), игнорируемые или пропущенные в зависимости от состояния задач в project(":mod_b")? Есть ли способ связать два проекта, используя зависимости lib проекта, но не импортируя артефакты project(":mod_b") в project(":mod_b_pinned") classpath? Или есть другая альтернатива?

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