Как сделать задачу публикации инкрементной в Gradle Kotlin? Каждый раз, когда артефакт должен публиковать sh, происходит ли изменение в кэше градла - PullRequest
0 голосов
/ 06 марта 2020

Существует инсталлятор задач, который является инкрементным, когда когда-либо происходит изменение в кэше градуировки для определенных модулей, инсталляторы будут работать только для этих модулей. Внутренний установщик вызывает подключаемый модуль installanywhere, чтобы сгенерировать файл bin и поместить его в путь проекта. Одновременно нам нужно опубликовать sh артефакты только для тех модулей, для которых сгенерированы установщики, или был изменен кеш-хранилище. Как мы можем достичь этого? как может быть Maven Publi sh может быть инкрементным

публикации {

publications {

    tierVtmosListToBuild.forEach() { t ->
        val tierVtmosPath = t.getConcatenatedTierVtmos("/")
        val devicePropertiesFile = File(deviceXmlInstallerDir, "$tierVtmosPath/device.properties")
        val deviceProperties = Properties().apply {
            FileInputStream(devicePropertiesFile).use {
                load(it)
            }

            val vendorFormatted = this.getProperty("device.vendor.formatted")
            val typeFormatted = this.getProperty("device.type.formatted")
            val modelFormatted = this.getProperty("device.model.formatted")
            val osFormatted = this.getProperty("device.os.trimmed")
            put("deviceInstallerName", "$vendorFormatted$typeFormatted$modelFormatted$osFormatted")
        }

        val deviceName = deviceProperties.getProperty("deviceInstallerName")
        logger.info("Uploading artifact to nexus with VTMOS" + deviceName)
        val deviceInstallerOutputDir = File(installerOutputDir, "$tierVtmosPath")
        val driverOutputDir = (File(deviceInstallerOutputDir, "device_Build_Output/Fixpack/Web_Installers/InstData/GenericUnix/$deviceName.bin")).toString()
        //val driverFileName = (File(driverOutputDir, "$deviceName.bin") ).toString()
        //create<MavenPublication>("${t.getConcatenatedVtmos("")}") {
        create<MavenPublication>("${t.getConcatenatedVtmos("")}") {
            groupId = "com.itncm.drivers.artifacts"
            artifactId = "${t.getConcatenatedVtmos("_")}"
            artifact (driverOutputDir)
            version = "1.0.0-SNAPSHOT"

        }
    }
}
repositories {
    maven {
        url = uri("https://nexus.fragglerock.wipro.com:0000/repo")
        credentials {
            username = "user"
            password = "pass"
        }
    }
}

}

...