java - 在 Eclipse 中导出单个 .jar 时避免重复库 .jars

标签 java eclipse deployment jar clojure

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

效果很好,神奇地包含了各种资源和 Clojure 源文件等。

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

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

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

最佳答案

如果您的项目有一个自然的依赖关系图,我会更改您的 eclipse 项目设置,这样只有一个项目在构建路径上有 jar 并且它导出(导出我的意思是从Configure Build Path 对话框中的“Order and Export”选项卡)该 jar 供其他项目查看。然后其他项目在构建路径上具有该“核心”项目。我相信这自然会解决您的问题。

编辑

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

关于java - 在 Eclipse 中导出单个 .jar 时避免重复库 .jars,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150354/

相关文章:

java - 未在 App Engine 上调用 Servlet 过滤器

eclipse - 单元测试类在eclipse中运行旧版本

eclipse - Lombok 在 eclipse 火星上不工作

asp.net - 发布 Web 应用程序时如何包含未引用的 dll?

java - 提交失败,而步骤执行数据已更新

java - 多次恢复时 Activity 滚动不流畅

java - 使用 Eclipse 设置 LibGDX 时出现 Gradle 错误

qt - 在 OS X 和 Linux 上部署 QT 应用程序

node.js - 部署 Web 应用程序时是否应该重新创建容器?

java - 需要帮助编写测试