Как я должен зависеть от пользовательской конфигурации в составной сборке? - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть приведенная ниже пользовательская конфигурация и публикация артефактов, я хочу включить ее, как будто это отдельный проект.Как я могу это сделать?

(в настоящее время используется gradle 5.3)

вот моя настраиваемая конфигурация tlib

sourceSets {
    val main by getting
    val tlib by creating {
        compileClasspath += main.output
        runtimeClasspath += main.output
    }
    val test by getting {
        compileClasspath += tlib.output
        runtimeClasspath += tlib.output
    }
}

configurations {
    val tlibCompile by getting {
        extendsFrom(configurations["implementation"])
    }
}

publishing {
    publications {
        val tlibJar by tasks.registering(Jar::class) {
            from(sourceSets["tlib"].output)
        }

        val tlibSourcesJar by tasks.registering(Jar::class) {
            archiveClassifier.set("sources")
            from(sourceSets["tlib"].allSource)
        }

        register("mavenTLib", MavenPublication::class) {
            artifactId = "phg-entity-tlib"
            artifact(tlibJar.get())
            artifact(tlibSourcesJar.get())
        }
    }
}

это то, как я сейчас импортирую свои подпроектыв композите

import org.slf4j.LoggerFactory

rootProject.name = "predictive-health-service-app"

val cwd = file(".")
var modules = file("./modules")
modules.mkdirs()

val log = LoggerFactory.getLogger("settings.gradle")!!

modules.listFiles { file ->
    log.debug("dir: {}", file)
    val match = file.isDirectory && file.listFiles { _, n ->
        log.debug("{}/{}", file.name, n)
        n.startsWith("settings.gradle")
    }.isNotEmpty()
    if (match) {
        log.info("found module :{}", file.name)
    }
    match
}.forEach {
    includeBuild("modules/" + it.name)
}

некоторые из моих модулей зависят от него как таковые

testImplementation("${project.group}:phg-entity-tlib:[0.8.5,0.9)")

, поэтому мне нужно заменить его, но как мне это сделать, если он является пользовательской конфигурацией /отдельный артефакт?

...