Зависимости копирования Gradle во встроенном фляге - PullRequest
0 голосов
/ 04 июня 2018

Я ищу решение для добавления моих зависимостей gradle в мой встроенный файл jar.

Например, у меня есть зависимость com.fazecast:jSerialComm и я хочу добавить библиотеку в определенную папку в jar,Путь к библиотеке должен быть libs/jserialcomm/jSerialComm-2.0.2.jar

1 Ответ

0 голосов
/ 06 июня 2018

Добавьте в свой build.gradle следующее:

jar {
  from {
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
  }
}

Это объединит содержимое всех зависимостей в выходной файл.

См. Также http://www.baeldung.com/gradle-fat-jar.

В другом подходе можно скопировать jar-файлы зависимостей в выходной jar-файл (jars in jar), но для этого также необходимо написать собственный загрузчик классов.

UPDATE после редактирования вопроса:

OP хочет использовать второй подход, который используется следующим образом:

plugins {
    id "com.github.onslip.gradle-one-jar" version "1.0.5"
}

task awesomeFunJar(type: OneJar) {
    mainClass = 'com.github.rholder.awesome.MyAwesomeMain'
}

Это будет включать все зависимые jar-файлы в каталог lib в выходном jar-файле.Он также установит пользовательский загрузчик классов, который загружает jar-файлы из каталога lib в jar-файле.Это то, что стандартный загрузчик классов не делает, независимо от того, как вы настраиваете путь к классу.

См. Также https://github.com/Onslip/gradle-one-jar/

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