我正在搜索在我的内置jar文件中添加gradle依赖项的解决方案。
例如,我有依赖项com.fazecast:jSerialComm
并希望在jar中的特定文件夹中添加库,库路径应为libs/jserialcomm/jSerialComm-2.0.2.jar
答案 0 :(得分:0)
将以下内容添加到build.gradle:
jar {
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
这会将所有依赖项的内容合并到输出jar中。
另见http://www.baeldung.com/gradle-fat-jar。
在另一种方法中,可以将依赖项的jar复制到输出jar(jar中的jar)中,但这也需要编写自定义类加载器。
编辑问题后更新:
OP希望采用第二种方法,采用如下方法:
plugins {
id "com.github.onslip.gradle-one-jar" version "1.0.5"
}
task awesomeFunJar(type: OneJar) {
mainClass = 'com.github.rholder.awesome.MyAwesomeMain'
}
这将包括所有依赖的jar进入输出jar中的lib目录。它还将安装一个自定义类加载器,它从jar中的lib目录加载jar。无论你如何调整类路径,标准类加载器都不会这样做。