我正在开发一个库,它有自己的库依赖关系,我想从中抽象出来。在将项目导出到具有以下结构的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添加到他们的构建路径中,然后导入我的包。
您正在发布一个具有一组依赖项的库。库的用户可以选择添加依赖库。如果我理解正确的话,您希望通过将依赖jar包含到库jar的一部分来简化用户。你可以使用JarJar将多个jar合并为一个jar。
From the site.
Jar Links是一个实用程序,它可以很容易地重新打包Java库,并将它们嵌入到您自己的发行版中。这很有用有两个原因:您可以轻松地发布没有外部依赖的单个jar文件。
您可以避免您的库依赖于库的特定版本的问题,这可能与另一个库的依赖冲突。
如果这是关于重新打包可执行jar,那么查找One-Jar。本文讨论了将一个版本合并到一个JAR文件中的最简单方法