Kotlinc включает другие файлы jar

#kotlin #jar #kotlinc

#kotlin #jar #kotlinc

Вопрос:

Я хотел бы запустить приложение из командной строки в macOS. Проблема в том, что я хочу включить Gson в файл, чтобы преобразовать мои классы данных в объект json. (Я новичок в командной строке с kotlin)

Для упрощения я использую следующее:

 fun main() {
    val item = Building(1, "Name", 4, 2)

    val jsonBuilding: String = Gson().toJson(item)
}
 

Для создания / запуска моего кода в командной строке я использую:

 >> kotlinc creator.kt -include-runtime -d creator.jar

>> java -jar creator.jar
 

Теперь мой вопрос в том, как включить gson.jar , чтобы иметь возможность использовать его в приложении?

В настоящее время я получаю ошибки, потому что он не может разрешить Gson() :

 creator.kt:37:16: error: unresolved reference: Gson
   val gson = Gson()
 

Любая помощь приветствуется.

Ответ №1:

Вы, вероятно, используете Intellj IDEA. Когда вы создаете приложение командной строки JVM Gradle, вы должны и следующий код в файле build.gradle.kts.

 tasks.withType<Jar> {
manifest {
    attributes["Main-Class"] = "com.your_project_package.MainKt"
}
// To add all of the dependencies
from(sourceSets.main.get().output)

dependsOn(configurations.runtimeClasspath)
from({
    configurations.runtimeClasspath.get().filter { it.name.endsWith("jar") }.map { zipTree(it) }
})
}
 

Затем создайте свой проект, и в задачах gradle вы должны найти Задачи-> сборка-> jar, щелкнуть по нему и все. У вас есть файл jar в папке проекта, build-> библиотеки->project.jar .

Теперь вы можете запустить свой jar-файл как java jar-файл с помощью следующей команды:

 java -jar your_project_package.jar
 

exemple

Я надеюсь, что это полезно для вас