Не работает «включить» в скрипт Kotlin: ^ Неожиданные токены (используйте ‘;’ для разделения выражений в одной строке)

#gradle #kotlin #shadowjar

#gradle #kotlin #shadowjar

Вопрос:

В моем build.gradle.kts:

    val shadowJar by tasks.getting(ShadowJar::class) {
    include '*.properties'
}
  

Но я получаю ошибку:

 Script compilation errors:

  Line 93:     include '*.properties'
                       ^ Unexpected tokens (use ';' to separate expressions on the same line)

  Line 93:     include '*.properties'
               ^ Function invocation 'include(...)' expected

2 errors
Open File
  

Ответ №1:

Необходимо использовать двойные кавычки для строк и (…) вокруг аргументов функции. Это первые 2 вещи, упомянутые в документации для преобразования скриптов сборки Groovy в Kotlin. https://guides.gradle.org/migrating-build-logic-from-groovy-to-kotlin/#prepare_your_groovy_scripts

Подготовьте свои заводные скрипты

Некоторые простые различия в языках Kotlin и Groovy могут сделать преобразование сценариев утомительным:

  • Строки Groovy могут заключаться в одинарные кавычки ‘string’ или двойные кавычки «string», тогда как Kotlin требует двойных кавычек «string».

  • Groovy позволяет опускать круглые скобки при вызове функций, тогда как Kotlin всегда требует круглых скобок.