Распространите и запустите файл jar только с нашими собственными Kotlin классами - PullRequest
0 голосов
/ 06 апреля 2020

Я использую gradle build, который генерирует всеобъемлющий ueber-jar

<myproject>-<version>-SNAPSHOT.jar

с более чем 3700 классами в нем. Из них, может быть, тридцать - это специфичные для проекта c пользовательские классы.

Хотя ручное извлечение только пользовательских классов не составит труда, остается несколько желательных особенностей:

  1. a * Задача 1010 * для создания jar-файла только для приложения?
  2. Задача gradle build для отдельной сборки шаблон jar
  3. Задача gradle run, которая будет включать оба эти jar в его classpath как часть запуска указанного класса kotlin, содержащего main точку входа

Мотивация, вероятно, очевидна: повторная генерация всего ueber-jar каждый раз - это затягивание итеративного цикла разработки.

Обновление Вот две задачи, которые могут принести пользу.

task runServer(type: JavaExec) {
    main ='org.naphi.ServerTest'
    classpath = sourceSets.main.runtimeClasspath
}

task runClient(type: JavaExec) {
    main ='org.naphi.SocketClientTest'
    classpath = sourceSets.main.runtimeClasspath
}

Обратите внимание, что ни один из них в настоящее время не работает:

 $gradle runServer

> Task :runServer FAILED
Error: Could not find or load main class org.naphi.ServerTest
Caused by: java.lang.ClassNotFoundException: org.naphi.ServerTest

Но это, вероятно, отдельный вопрос о том, как использовать правильно запеченный проект classpath в gradle задача.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...