Gradle 6.0 нарушает зависимость от исходного набора - PullRequest
0 голосов
/ 09 марта 2020

У меня есть коллекция уроков для студентов здесь: https://github.com/emign/engineEmi_Lektionen/tree/master

Зависимая библиотека для этого проекта вводится через плагин gradle здесь: https://github.com/emign/engineEmi_GradlePlugin/blob/98a70b6a54c21c730a9d1cb6e4fee9ac369b8fc6/src/main/kotlin/me/emig/engineEmi/gradle/EngineEmiGradlePlugin.kt#L43

enter image description here enter image description here

Все прекрасно работает до уровня 5.6.4. Но когда я обновляю оболочку, она ломается и теряет исходный набор вышеупомянутой библиотеки. Может кто-нибудь помочь мне с этим?

Шаги для воспроизведения:

  1. Клон репо
  2. Использовать упаковщик Gradle версии 5.6.4 -> Пример работает. (EngineEmi зависимости набора исходных кодов интегрирован)
  3. Использовать упаковщик Gradle версии 6.0 или выше -> Примеры разрывов (EngineEmi зависимостей набора источников отсутствует)

EDIT Forgot сообщение об ошибке:

 > Task :compileKotlinJvm FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.2.2/userguide/command_line_interface.html#sec:command_line_warnings
1 actionable task: 1 executed
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (1, 8): Unresolved reference: me
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (16, 9): Unresolved reference: engine
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (21, 13): Unresolved reference: init
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (28, 13): Unresolved reference: viewWillLoad
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (35, 13): Unresolved reference: viewDidLoad
e: /Users/username/dev/engineEmi/engineEmi_Template/src/commonMain/kotlin/Main.kt: (39, 13): Unresolved reference: start

Он просто не может найти библиотеку (пакет). Переключение обратно на 5.6.4 позволяет снова найти библиотеку

1 Ответ

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

Наконец-то я смог это исправить.

Проблема заключалась в комбинации двух вещей, которые я мог воспроизвести:

1. Kotlin Многоплатформенная публикация

Вам НЕ нужно создавать публикации вручную с помощью kotlin multipatform: по сравнению с публикацией простого проекта Kotlin / JVM или Java, в этом нет необходимости создавать публикации вручную через публикацию {...} (см. здесь: 1 )

Блок kotlin {} почти все для вас. Вам нужно только добавить репозиторий, в который вы публикуете sh, в блок publishing {}. Например: *

publishing {
    publications {
        val kotlinMultiplatform by getting {
            repositories {
                maven {
                    credentials {
                        username = "USERNAME"
                        password = System.getenv("bintrayApiKey")
                    }
                    url = uri(
                        "https://api.bintray.com/maven/ORG/REPO/ARTIFACT/"

                    )
                }
            }
        }
    }
}

2. Задачи для публикации

Каким-то образом задача publishAllPublicationsToMavenRepository у меня не сработала. Вам действительно нужно использовать publish задачу

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