我是 Java 新手,我已经编写了一个 API,我想分发它。我正在创建一个 Jar 文件来制作 API,但我的程序使用了一些其他 API,例如 Jena 和 XSOM。如何在 Eclipse 的帮助下将这些 API 包含到我的 Jar 发行版中?我已经阅读了类似的问题,但找不到答案。
2 回答
问题没有澄清。这取决于为不同目的分发。
如果你不能说清楚,只需拿起一些工具来做:
胖子呢?它只是将任何依赖项 JAR 添加到一个 jar 中,您可以从 eclipse 菜单中的导出可执行 jar 中执行此操作。
Apache Maven怎么样?它简化了任何 java 项目的依赖管理,但学习如何使用它需要一些时间。
构建工具怎么样?例如,Apache ANT只是一个为 java 项目设计的类似 make 的工具。与 maven 不同,它以您想要的任何顺序组装项目构建。
JSmooth怎么样?它将您的项目打包成可执行文件。
不要忘记包含许可证。当您分发 3rd-party JAR 时,许可证声明也应该分发。
无论如何,分发的目的有很多。例如,准备在 Web 容器中部署和运行的依赖项。通常,我们有部署工具(由 Web 容器提供商提供的 ant 任务或 maven 插件)。例如,为独立的 java 应用程序准备依赖项。在这种情况下,我们应该制作部署工具并自行考虑流程:
- 应用程序如何运送到生产环境?通过 url 下载,通过 scp 复制,从 git repo 中的发布分支结帐?
- 如何更新生产上的应用程序?这是一个重要的问题,当您遇到问题时,需要快速修复和热部署。
- 类路径中 JAR 的更好顺序是什么?错误的顺序会导致类阴影或加载错误的配置文件。
您需要将依赖的 jar 添加到类路径中。
您可以:
将其他 jar 列为依赖项,并指示“api”的用户将它们添加到他们的类路径中。
如果您的“api”涉及一个主类并且您希望将其作为可执行 jar 分发,您可以使用包含所需库的外部文件夹分发您的 jar,然后更改您的 jar 清单以指定您的主类和类路径以包含那些外部依赖项。
如果您使用 maven,那么通过将它们列出在您的依赖项中,它们将自动包含在客户端代码中,因为它们将被视为传递依赖项。
遮住罐子 - 所以通过打开它们的内容并将它们包含在你的罐子中来包含它们。为此,我想到了三种方法*:
- 如果您在 maven 中构建您的 api,您可以查看shade 插件
- 你可以看看使用有点有趣的名字 (?!) Jar Jar Links
- eclipse“导出为可执行 jar”允许您保存具有类似功能的 ant 文件。
(*在任何这些情况下,取决于依赖库的许可证是否允许您这样做) -