Size: a a a

Kotlin Community

2020 June 11

AN

Alexander Nozik in Kotlin Community
gradle.kts - это валидный котлин код с правильными ресиверами
источник

Ю

Юрий in Kotlin Community
понял принял пасеба
источник

SB

Sergey Barmin in Kotlin Community
пробовал я что-то переписать у своих библиотек груви на kts, жутко намучался с тем что в билдскрипт не тянется общая экстра  и получается что версии описать в одном месте не получится. почему это нормально работает в груви, но не в kts не понятно
источник

AN

Alexander Nozik in Kotlin Community
Sergey Barmin
пробовал я что-то переписать у своих библиотек груви на kts, жутко намучался с тем что в билдскрипт не тянется общая экстра  и получается что версии описать в одном месте не получится. почему это нормально работает в груви, но не в kts не понятно
тянется. просто там вызов другой
источник

AN

Alexander Nozik in Kotlin Community
val prop: String by rootProject.extra()
источник

SB

Sergey Barmin in Kotlin Community
Alexander Nozik
val prop: String by rootProject.extra()
да я как только не пробовал. в груви вполне скажем так "привычное" buildscript { ext {} }, в ктс как бы я ни объявлял, через by extra("") в корне, через extra.appy {}
не получилось одновременно в buildscript { dependencies {} } и просто dependencies {} это зарезолвить.

Притом в груви ты объявил и используешь просто как интерполяцию,  а в kts в каждом блоке еще подтянуть через by extra снова надо.

Может я и не правильно это готовлю, но и читаемой доки как "правильно" я не нашел.
источник

AN

Alexander Nozik in Kotlin Community
Sergey Barmin
да я как только не пробовал. в груви вполне скажем так "привычное" buildscript { ext {} }, в ктс как бы я ни объявлял, через by extra("") в корне, через extra.appy {}
не получилось одновременно в buildscript { dependencies {} } и просто dependencies {} это зарезолвить.

Притом в груви ты объявил и используешь просто как интерполяцию,  а в kts в каждом блоке еще подтянуть через by extra снова надо.

Может я и не правильно это готовлю, но и читаемой доки как "правильно" я не нашел.
Ну я обычно в руте делаю by extra с параметром, а потом везде, где надо вызываю просто как by rootProject.extra(). Нормально. По другому не получается, потому что тип нужен.
источник

RI

Ruslan Ibragimov in Kotlin Community
1 или 2? resource дергается редко - тесты или top-level проперти
источник

RI

Ruslan Ibragimov in Kotlin Community
источник

RI

Ruslan Ibragimov in Kotlin Community
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
1 или 2? resource дергается редко - тесты или top-level проперти
Я бы сказал, что надо взять класслоадер от прилетевшей строки, это будет и безопасно и коротко
источник

RI

Ruslan Ibragimov in Kotlin Community
null
источник

AN

Alexander Nozik in Kotlin Community
Что null?
источник

RI

Ruslan Ibragimov in Kotlin Community
name::class.java.classLoader == null // true
источник

I

Igor in Kotlin Community
А что не getSystemClassLoader?
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
name::class.java.classLoader == null // true
упс, а я и не знал...
источник

RI

Ruslan Ibragimov in Kotlin Community
Igor
А что не getSystemClassLoader?
Создается новый ClassLoader
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Я бы сказал, что надо взять класслоадер от прилетевшей строки, это будет и безопасно и коротко
Это будет ни разу не безопасно, потому что класслоадер системных классов может легко отличаться от того, которым загружена либа/приложение
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Это будет ни разу не безопасно, потому что класслоадер системных классов может легко отличаться от того, которым загружена либа/приложение
Что и было наглядно показано
источник

AN

Alexander Nozik in Kotlin Community
Ну тогда взять класслоадер у соседнего класса.
источник