Size: a a a

2019 August 08

AS

Andrey Sidorenko in Kotlin JVM
Это такой себе кейс
источник

RI

Ruslan Ibragimov in Kotlin JVM
Ну вообще по идее, есть очень хочется файликом, то jar+pom должен тоже работать
источник

AS

Andrey Sidorenko in Kotlin JVM
Правильно ли я понимаю, что это мавен -> 2 системы сборки в одном проекте либо отказ от градла?
источник

VP

Vladimir Petrakovich in Kotlin JVM
Andrey Sidorenko
Чистый проект, так же импорт градлом:
plugins {
   id 'java'
   id 'org.jetbrains.kotlin.jvm' version '1.3.41'
}

group 'test'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
   mavenCentral()
}

dependencies {
   implementation fileTree(dir: "lib")
   implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"
   
   testCompile group: 'junit', name: 'junit', version: '4.12'
}

compileKotlin {
   kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
   kotlinOptions.jvmTarget = "1.8"
}


Тот же прикол - запускается, но не видит
Работать через репозиторий - это не просто объявить в проекте mavenLocal() а заливать туда либу (как нормальный артефакт с зависимостями, а не fat jar), и тянуть её оттуда, по координатам
источник

AS

Andrey Sidorenko in Kotlin JVM
Речь шла как раз о том, как этого избежать
источник

VP

Vladimir Petrakovich in Kotlin JVM
Andrey Sidorenko
Речь шла как раз о том, как этого избежать
Ну давайте сначала разберёмся с таким простым вопросом: код на котлине, что делать с kotlin-stdlib?
1. пихать в библиотеку как есть
2. пихать в библиотеку с переименованием пакета
3. требовать наличие в classpath
источник

AS

Andrey Sidorenko in Kotlin JVM
Требовать наличие
источник

VP

Vladimir Petrakovich in Kotlin JVM
Получается, что это можно сделать и с другими зависимостями?
источник

AS

Andrey Sidorenko in Kotlin JVM
Да, можно. Но по определённым причинам часть зависимостей требуется держать в библиотеке
источник

AS

Andrey Sidorenko in Kotlin JVM
Лишь часть. Те, которые включаются в нее не из репозиториев, а как локальная зависимость
источник

AS

Andrey Sidorenko in Kotlin JVM
Необходимость больше связанная с бизнесом, чем с проблемами в реализации
источник

VP

Vladimir Petrakovich in Kotlin JVM
Хм, ну тогда fat jar - это не так уж и плохо)
источник

VP

Vladimir Petrakovich in Kotlin JVM
А по поводу изначального вопроса - любая проблема вида "проект собирается gradle, но какие-то проблемы в идее" - это баг интеграции идеи с gradle.
У вас какая версия?
источник

AS

Andrey Sidorenko in Kotlin JVM
Идеи - 2019.2
Градла - пока затрудняюсь ответить. Та, что используется в 2019.2 по умолчанию :D
источник

AS

Andrey Sidorenko in Kotlin JVM
На более старых версиях (полагаю, Андроид студию можно считать за более старую) проблема так же воспроизводится
источник

VP

Vladimir Petrakovich in Kotlin JVM
Ну gradle не встроен в идею, так что где-то версия таки есть. Может, в gradle-wrapper.properties.
У меня на 2019.1.4 и 5.5.1 всё работает)
источник

VP

Vladimir Petrakovich in Kotlin JVM
Кстати, это вроде как проблема тех людей, которым вы эту либу отдадите
источник

AS

Andrey Sidorenko in Kotlin JVM
на скорости интеграции это скажется очень сильно, не сомневаюсь - это раз
И два - может ли быть такое, что проблема на самом деле в самом джарнике?

В один момент словил ошибку, связанную с теми самыми библиотеками при импорте. Что-то вроде "подпись неверна" или "подпись не совпадает". В meta-inf лежали 2 файла с подписью
источник

VP

Vladimir Petrakovich in Kotlin JVM
Эти самые библиотеки - это которые вы сами пишете?
источник

AS

Andrey Sidorenko in Kotlin JVM
Нет, сторонние, проприетарные
источник