我正在开发一个拥有它自己的库依赖项的库,我想要从中抽象出来。将项目导出到具有以下结构的jar后,我遇到了问题:
Foo.jar
-> net
-> foo
-> java class files
-> lib
-> *.jar
-> src
-> foo
-> java source files
-> doc
-> javadoc and other docs
-> License.txt
当我去测试我的库时,我可以轻松地从net.foo.*
导入我的库代码,但是因为“没有合适的驱动程序...”而其他依赖于内部库的运行时,我会抛出异常从我的抽象层调用。
我正在使用ANT来构建我的jar,但我不知道该怎么做。理想情况下,用户只需将我的jar添加到他们的构建路径,然后导入我的包。
答案 0 :(得分:1)
您正在发送具有一组依赖项的库。库的用户可以选择添加依赖库。如果我理解正确,您希望通过包含依赖项jar是库jar的一部分来使用户变得简单。您可以使用JarJar将多个罐子合并到一个罐子里。
来自网站..
Jar Jar Links是一个实用程序,可以轻松地重新打包Java 库并将它们嵌入到您自己的发行版中。这很有用 有两个原因:
您可以轻松发送没有外部依赖项的单个jar文件。
您可以避免库依赖于库的特定版本的问题,这可能与另一个库的依赖项冲突。
如果这是关于可执行jar的重新打包,那么请查找One-Jar。在Easiest way to merge a release into one JAR file
中进行了讨论