Возникла проблема с мультипроектной публикацией bintray - PullRequest
0 голосов
/ 22 октября 2019

У меня есть проект с 2 подмодулями, и мне нужно написать скрипт, который будет публиковать двоичные файлы каждого проекта в bintray. После целого месяца суеты и страданий мне удалось написать хотя бы что-то работающее:

Корневой проект:

buildscript { // Непонятно почему я не могу разделить этот блок на зависимости для всех проектов и на зависимости для рутпроект. Ругается на невозможность резолва
    repositories {
        jcenter()
        mavenCentral()
        maven {
            name = "forge"
            url = "http://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
        maven {
            url = "https://dl.bintray.com/rarescrap/minecraft"
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
        classpath 'ru.rarescrap:depATs:1.0.0' // Для поиска трансформеров в зависимостях
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.1' // 1.8.4 не юзается, т.к. он не работает нифига
    }
}

allprojects {
    repositories { // Вообще, этот реп нужен только в case2, но тогда рутпроект не может найти местонахождение configurabeweight
        maven {
            url = "https://dl.bintray.com/rarescrap/minecraft"
        }
    }

    apply from: "$rootDir/gradle/mcforge.gradle"



    group= "ru.rarescrap.weightapi"

    // Подготавливает maven-публикацию, которая будет использоваться в bintray
// Именно тут определяются артефакты для публикации
    apply plugin: 'maven-publish'
    publishing {
//        afterEvaluate {
        publications {
            "$project.name"(MavenPublication) {
                afterEvaluate {
                    //from components.java // Артефакты по умолчанию. Отлючаем их, т.к. нам нужно артефакт main-модуля заменить на артефакт от api-модуля
                    groupId group
                    artifactId archivesBaseName
//                version "0.4.0_1.7.10"
                    version "${project.version}_1.7.10"
                    artifact deobfJar
                    artifact sourcesJar
                    artifact javadocJar
                }
            }
        }
//        }

    }

// Публикация либы в bintray/jcenter
    apply plugin: 'com.jfrog.bintray'
    bintray {
        user = 'rarescrap'
        key = System.getenv('BINTRAY_KEY')
        publications = ["$project.name"]
        dryRun = true
        pkg {
            repo = 'minecraft'
            name = 'weight-api'
            licenses = ['GPL-3.0']
            vcsUrl = 'https://github.com/RareScrap/WeightAPI.git'
            version {
                afterEvaluate {
//                    name = "0.4.0_1.7.10"
                    name = "${project.version}_1.7.10"
                    released = new Date()
                }
            }
        }
    }







}

subprojects { // TODO: Forge дублируется в зависимостях с битым путем
    dependencies {
        compile rootProject
    }
    configurations { // TODO: Должен быть способ лучше эксклюдить кейсы в самих же кейсах. Что-то вроде "transitive = false"
        runtimeOnly.exclude module: 'case1'
        runtimeOnly.exclude module: 'case2'
    }
}

version = "0.4.0"
//group= "ru.rarescrap.weightapi" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "weightapi"
def publicationVersion = version+'_1.7.10'

apply plugin: 'DepATs'
minecraft { at(DepATs.getDepATs()) } // Включаем трансформеры из зависимостей

dependencies {
    // При запуске игры из рутпроекта сабпроджкты подлючатся как моды
    runtimeOnly project(':case1')
    runtimeOnly project(':case2')
}

module1:

version = "0.4.0"
archivesBaseName = "weightapi-case1"

module2:

version = "0.4.0"
archivesBaseName = "weightapi-case2"

repositories {
    maven {
        url = "https://dl.bintray.com/rarescrap/minecraft"
    }
}

dependencies {
    compile 'ru.rarescrap.configurableweight:configurableweight:0.4.0_1.7.10:dev'
}

Вот что я получаю, когда запускаю gradlew bintrayUpload:

C:\Users\DangerArea\Desktop\WeightAPI>gradlew bintrayUpload
Starting a Gradle Daemon, 10 incompatible and 2 stopped Daemons could not be reused, use --status for details

> Configure project : 
#################################################
         ForgeGradle 1.2-SNAPSHOT-fb514d3
  https://github.com/MinecraftForge/ForgeGradle
#################################################
               Powered by MCP unknown
             http://modcoderpack.com
         by: Searge, ProfMobius, Fesh0r,
         R4wk, ZeuX, IngisKahn, bspkrs
#################################################

> Configure project :case1 
Found AccessTransformer in main resources: weightapi_example1_at.cfg

> Configure project :case2 
Found AccessTransformer in main resources: weightapi_example2_at.cfg

> Task :case1:bintrayUpload 
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi-case1/0.4.0_1.7.10/weightapi-case1-0.4.0_1.7.10-dev.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi-case1/0.4.0_1.7.10/weightapi-case1-0.4.0_1.7.10-sources.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi-case1/0.4.0_1.7.10/weightapi-case1-0.4.0_1.7.10-javadoc.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi-case1/0.4.0_1.7.10/weightapi-case1-0.4.0_1.7.10.pom...

> Task :case2:bintrayUpload 
Repository name, package name or version name are null for project: project ':case2'

> Task :bintrayUpload 
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10-dev.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10-sources.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10-javadoc.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10.pom...


BUILD SUCCESSFUL in 43s
40 actionable tasks: 12 executed, 28 up-to-date
C:\Users\DangerArea\Desktop\WeightAPI>gradlew bintrayUpload

> Configure project :case1 
Found AccessTransformer in main resources: weightapi_example1_at.cfg

> Configure project :case2 
Found AccessTransformer in main resources: weightapi_example2_at.cfg

> Task :case1:bintrayUpload 
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/case1/0.4.0/case1-0.4.0.pom...

> Task :case2:bintrayUpload 
Repository name, package name or version name are null for project: project ':case2'

> Task :bintrayUpload 
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10-dev.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10-sources.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10-javadoc.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10.pom...


BUILD SUCCESSFUL in 6s
15 actionable tasks: 8 executed, 7 up-to-date
C:\Users\DangerArea\Desktop\WeightAPI>gradlew bintrayUpload

> Configure project :case1 
Found AccessTransformer in main resources: weightapi_example1_at.cfg

> Configure project :case2 
Found AccessTransformer in main resources: weightapi_example2_at.cfg

> Task :case1:bintrayUpload 
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi-case1/0.4.0_1.7.10/weightapi-case1-0.4.0_1.7.10-dev.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi-case1/0.4.0_1.7.10/weightapi-case1-0.4.0_1.7.10-sources.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi-case1/0.4.0_1.7.10/weightapi-case1-0.4.0_1.7.10-javadoc.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi-case1/0.4.0_1.7.10/weightapi-case1-0.4.0_1.7.10.pom...

> Task :case2:bintrayUpload 
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0/ru/rarescrap/weightapi/weightapi-case2/0.4.0_1.7.10/weightapi-case2-0.4.0_1.7.10-dev.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0/ru/rarescrap/weightapi/weightapi-case2/0.4.0_1.7.10/weightapi-case2-0.4.0_1.7.10-sources.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0/ru/rarescrap/weightapi/weightapi-case2/0.4.0_1.7.10/weightapi-case2-0.4.0_1.7.10-javadoc.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0/ru/rarescrap/weightapi/weightapi-case2/0.4.0_1.7.10/weightapi-case2-0.4.0_1.7.10.pom...

> Task :bintrayUpload 
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10-dev.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10-sources.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10-javadoc.jar...
Uploading to https://api.bintray.com/content/rarescrap/minecraft/weight-api/0.4.0_1.7.10/ru/rarescrap/weightapi/weightapi/0.4.0_1.7.10/weightapi-0.4.0_1.7.10.pom...


BUILD SUCCESSFUL in 15s
40 actionable tasks: 12 executed, 28 up-to-date

Вот вопрос: ПОЧЕМУ ВЕРСИЯ CASE2 ПРОСТО 0,4.0 (должно быть0.4.0_1.7.10). Я буквально пытался ВСЁ, что я мог только гуглить, самостоятельно выяснять или читать из доков. Я почти месяц пытаюсь найти ответ и уже нахожусь на грани отчаяния.

...