我正在使用Eclipse“导出...可运行的jar文件”功能来打包Clojure + Java应用程序以进行部署。

这很棒,神奇地包括各种资源和Clojure源文件等。

我遇到的一个问题是,我从“lib”目录相关项目中多次包含了各种库,例如由于构建路径上的其他项目也使用Clojure,因此我得到了Clojure jar文件的四个版本。

这个问题不必要地使我的.jar文件的大小增加了三倍!

除了从生成的jar中手动删除以外,是否有任何方法可以轻松消除这些重复项?

最佳答案

如果您的项目有一个自然的依赖图,我将更改您的eclipse项目设置,以使只有一个项目在构建路径上具有jar,并且它导出(通过导出,我的意思是从“订单和导出”标签中配置Build Path对话框),以防其他项目看到。然后,其他项目在构建路径上具有该“核心”项目。我相信这自然应该解决您的问题。

编辑

我的一个评论是,将罐子放在罐子里很少是一个好主意。我要么重新考虑将它们全部打包到一个jar中(除非jar的主文件指向将其自身的内容提取到一个文件夹中),要么探索使用“将所需的库提取到生成的JAR中”选项的可能性。

10-07 19:29
查看更多