Волхвы c с разделом публикации в артефактеПубликация sh конфигурация - PullRequest
0 голосов
/ 03 февраля 2020

Я столкнулся с некоторым магическим поведением c в конфигурации build.gradle. Я пытаюсь включить artifactoryPubli sh для проекта с подпроектами. У меня следующая структура файл gradle со следующим разделом

subprojects {
    apply from: "$rootDir/gradle/artifactory.gradle"
}

в artifactory.gradle

apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

    publishing {
        publications {
            mavenJava(MavenPublication) {
                from components.java
            }
        }
    }

artifactory {
    contextUrl = artifactoryUrl
    publish {
        repository {
            repoKey = 'mvn-snapshot-local'
            password = artifactoryPassword
            username = artifactoryUser
        }
        defaults {
            publications('mavenJava')
            publishArtifacts = true
            publishPom = true
        }
    }
}

, когда я запускаю artifactoryPubli sh, он успешно завершается, но публикуется sh ничего

Случай 2

, когда я перемещаю раздел публикации из файла на верхний уровень, как этот

subprojects {
    apply from: "$rootDir/gradle/artifactory.gradle"
    publishing {
        publications {
            mavenJava(MavenPublication) {
                from components.java
            }
        }
    }
}

все работает нормально, сборка завершена успешно и публикуется sh.

Вопрос

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

1 Ответ

0 голосов
/ 20 марта 2020

Кажется, проблема в том, что я пропустил настройку плагина:

    pluginManagement {
    gradle.ext.artifactoryPassword = artifactory_password ?: "nokey"
    gradle.ext.artifactoryUser = artifactory_user ?: "nokey"
    repositories {
        mavenLocal()
        maven {
            url "${artifactoryUrl}/mvn-gradle-plugins"
            credentials {
                username = gradle.ext.artifactoryUser
                password = gradle.ext.artifactoryPassword
            }
        }
        maven {
            url "${artifactoryUrl}/mvn-libs-release"
            credentials {
                username = gradle.ext.artifactoryUser
                password = gradle.ext.artifactoryPassword
            }
        }
    }
}

Репозитории были настроены в разделе репозиториев:

    repositories {
    if(version.toString().endsWith('SNAPSHOT')) {
        maven {
            url "$artifactoryUrl/mvn-libs-snapshot"
            credentials {
                username artifactoryUser
                password artifactoryPassword
            }
        }
    }
    maven {
        url "$artifactoryUrl/mvn-libs-release"
        credentials {
            username artifactoryUser
            password artifactoryPassword
        }
    }
    maven {
        credentials {
            password = artifactoryPassword
            username = artifactoryUser
        }
        url "$artifactoryUrl/mvn-external"
    }
    mavenLocal()
}
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}

Но это не сработало, пока я не добавил раздел управления плагинами и обновленные версии плагинов артефактов и рекон.

...