Size: a a a

2019 February 22

A

Alex in Kotlin JVM
Андрей
Всем привет! Наверное, очень тупой вопрос, но никак не гуглится. Пытаюсь построить jar. Не получается выбрать точку входа. Может это быть из-за того, что не указано имя корневого пакета?
А поиск результатов не даёт?
источник

А

Андрей in Kotlin JVM
А во вкладке project оно не выбирается. Методы тоже
источник

А

Андрей in Kotlin JVM
Alex
А поиск результатов не даёт?
Нет, кроме тех, что в списке, классов он не видит
источник

A

Alex in Kotlin JVM
Андрей
А во вкладке project оно не выбирается. Методы тоже
Для начало надо бы закоммититься,
источник

A

Alex in Kotlin JVM
Ну а так да гуглмтб kotlin-start, Gradle, jar (shadow jar)
источник

A

Alex in Kotlin JVM
Андрей
А во вкладке project оно не выбирается. Методы тоже
кстати да есть еще простой способ собрать jar через kotlinc
источник

A

Alex in Kotlin JVM
пример
kotlinc src/*.kt src/com/*.kt src/hlt/*.kt -include-runtime -d MyJar.jar
источник

А

Андрей in Kotlin JVM
Большое спасибо, сейчас буду пробовать
источник
2019 February 23

А

Андрей in Kotlin JVM
Вчерашнюю проблему вроде нагуглил. Надо указывать FileNameKt в качестве точки входа. Теперь какая-то очень странная проблема. Манифест генерируется нормально на основе конфига в build.gradle. Однако в конечном jar его замещает манифест какого-то "YAML 1.1 parser and emitter for Java", и jar соотвественно не запускается. Что я делаю не так?
источник

А

Андрей in Kotlin JVM
источник

А

Андрей in Kotlin JVM
источник

VP

Vladimir Petrakovich in Kotlin JVM
Андрей
Вчерашнюю проблему вроде нагуглил. Надо указывать FileNameKt в качестве точки входа. Теперь какая-то очень странная проблема. Манифест генерируется нормально на основе конфига в build.gradle. Однако в конечном jar его замещает манифест какого-то "YAML 1.1 parser and emitter for Java", и jar соотвественно не запускается. Что я делаю не так?
Судя по всему, вы пытаетесь собрать fat jar средствами IDEA, уже имея gradle в проекте.
Вместо этого просто возьмите shadow plugin, он сделает это нормально.
источник

А

Андрей in Kotlin JVM
Спасибо, сейчас попробую. А где можно про всё это почитать что-то последовательное? А то везде только куски информации, из которых не сильно понятно, как оно в общем работает
источник

A

Alex in Kotlin JVM
Андрей
Спасибо, сейчас попробую. А где можно про всё это почитать что-то последовательное? А то везде только куски информации, из которых не сильно понятно, как оно в общем работает
ShadowJar а гитхабе
источник

RI

Ruslan Ibragimov in Kotlin JVM
Вот дока которая описывает самый удобный и правильный путь создания shadow jar (aka fat jar) в gradle https://imperceptiblethoughts.com/shadow/introduction/
источник

RI

Ruslan Ibragimov in Kotlin JVM
по большому счету, если у вас в пакете foo.bar в файле App на верхнем уровне находится функция main, то в гредле нужно:

1. Подключить плагины в нужном модуле:

apply plugin: "application"
apply plugin: "com.github.johnrengelman.shadow"

2. Указать на main:

mainClassName = "foo.bar.AppKt"

И теперь у вас появится новый таск в gradle, который и соберет fat jar: shadowJar

Пример: https://github.com/Heapy/yml-ical/blob/master/build.gradle#L15-L38
источник

А

Андрей in Kotlin JVM
Alex
ShadowJar а гитхабе
А как тогда работает обычая сборка jar artifact? Она же вроде и зависимости должна подхватывать
источник

A

Alex in Kotlin JVM
Андрей
А как тогда работает обычая сборка jar artifact? Она же вроде и зависимости должна подхватывать
Да фиг знает, это вообще антипаттерн полагаться на сборку из ide, так нормальные люди не делают
источник

А

Андрей in Kotlin JVM
Почему-то вот так получается
источник

RI

Ruslan Ibragimov in Kotlin JVM
Зависимости тоже в gradle нужно указывать. Давай в @kotlin_start
источник