У меня есть проект с 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). Я буквально пытался ВСЁ, что я мог только гуглить, самостоятельно выяснять или читать из доков. Я почти месяц пытаюсь найти ответ и уже нахожусь на грани отчаяния.