Gradle, artifactory - Попытка опубликовать проект с lib, который зависит от другого - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть приложение, которое использует две библиотеки проектов, libDevice и libCloud.Мое приложение имеет libDevice в качестве зависимости, а libDevice имеет libCloud в качестве зависимости.Вот некоторые выдержки из моих файлов build.gradle:

Приложение верхнего уровня build.gradle:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.0.1"
    }
}
apply plugin: 'com.jfrog.artifactory'
apply plugin: 'maven-publish'

allprojects {
    artifactory {
        contextUrl = 'http://localhost:8081/artifactory'
    publish {
        repository {
            repoKey = 'example-repo-local'
            username = artifactory_username
            password = artifactory_password
        }
        defaults {
            publications('aar')
            publishArtifacts = true
            properties = ['qa.level': 'basic', 'q.os': 'android', 'dev.team': 'core']
            publishPom = true
        }
    }
}
repositories {
    google()
    jcenter()
    maven {
        url "http://localhost:8081/artifactory/example-repo-local"
        credentials {
            username = "${artifactory_username}"
            password = "${artifactory_password}"
        }
    }
}

}

В приложении build.gradle я добавляюlibDevice в зависимостях:

implementation project(path: ':..:deviceLibrary:libDevice')

В libDevice build.gradle я добавляю libCloud в качестве зависимости и определяю параметры публикации

в зависимостях

implementation project(path: ':..:cloudlibrary:libCloud')

и внизуof build.gradle:

publishing.publications {
    aar(MavenPublication) {
        groupId lib_device_library_group_id
        version lib_device_library_version
        artifactId lib_device_library_artifact_id

artifact("$buildDir/outputs/aar/${artifactId}.aar") } }

И в libCloud я также добавляю настройки публикации

publishing.publications {
aar(MavenPublication) {
    groupId lib_cloud_library_group_id
    version lib_cloud_library_version
    artifactId lib_cloud_library_artifact_id

    artifact("$buildDir/outputs/aar/${artifactId}.aar")
}
}

Когда я пытаюсь gradlew собрать, пожалуйста, опубликуйте артефактЯ получил BUILD SUCCESSFUL, но не все aar / pom сделаны / развернуты, только libDevice.Это не хорошо, это приводит к большому количеству исключений, не найденных в классе;)

Я могу заставить его работать, когда я:

1) удаляю настройки публикации в libDevice

2) gradlew assemblyRelease artifactoryPublish

3) удалить настройки публикации в libCloud и поместить параметры публикации в libDevice

4) gradlew assemblyRelease artifactoryPublish

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

Я хотел бы запустить gradlew assemblyRelease artifactoryPublish и опубликовать мои два документа.Это должно быть возможно, не так ли?:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...