1

我是 Java 新手,我已经编写了一个 API,我想分发它。我正在创建一个 Jar 文件来制作 API,但我的程序使用了一些其他 API,例如 Jena 和 XSOM。如何在 Eclipse 的帮助下将这些 API 包含到我的 Jar 发行版中?我已经阅读了类似的问题,但找不到答案。

4

2 回答 2

1

问题没有澄清。这取决于为不同目的分发。

如果你不能说清楚,只需拿起一些工具来做:

  • 胖子呢?它只是将任何依赖项 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 的更好顺序是什么?错误的顺序会导致类阴影或加载错误的配置文件。
于 2012-07-10T21:26:18.747 回答
1

您需要将依赖的 jar 添加到类路径中。

您可以:

  • 将其他 jar 列为依赖项,并指示“api”的用户将它们添加到他们的类路径中。

  • 如果您的“api”涉及一个主类并且您希望将其作为可执行 jar 分发,您可以使用包含所需库的外部文件夹分发您的 jar,然后更改您的 jar 清单以指定您的主类和类路径以包含那些外部依赖项

  • 如果您使用 maven,那么通过将它们列出在您的依赖项中,它们将自动包含在客户端代码中,因为它们将被视为传递依赖项。

  • 遮住罐子 - 所以通过打开它们的内容并将它们包含在你的罐子中来包含它们。为此,我想到了三种方法*:

    • 如果您在 maven 中构建您的 api,您可以查看shade 插件
    • 你可以看看使用有点有趣的名字 (?!) Jar Jar Links
    • eclipse“导出为可执行 jar”允许您保存具有类似功能的 ant 文件。

(*在任何这些情况下,取决于依赖库的许可证是否允许您这样做) -

于 2012-07-10T21:33:39.720 回答