Я использую gradle build
, который генерирует всеобъемлющий ueber-jar
<myproject>-<version>-SNAPSHOT.jar
с более чем 3700 классами в нем. Из них, может быть, тридцать - это специфичные для проекта c пользовательские классы.
Хотя ручное извлечение только пользовательских классов не составит труда, остается несколько желательных особенностей:
- a * Задача 1010 * для создания jar-файла только для приложения?
- Задача
gradle build
для отдельной сборки шаблон jar - Задача
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
задача.