2012-07-10 83 views
1

我是Java的新手,我写了一个API,我想分发它。我正在创建一个Jar文件来创建一个API,但是我的程序使用了一些其他API,比如Jena和XSOM。如何在Eclipse的帮助下将这些API包括到我的Jar发行版中?我已阅读过类似的问题,但找不到答案。向我的Java API添加依赖关系

回答

1

问题没有解决。这取决于分配用于不同的目的。

如果你不能说清楚,只要拿起一些工具来做到这一点:

  • 如何fatjar?它只是添加任何依赖JAR到一个jar,你可以从eclipse菜单中导出可执行jar。

  • Apache Maven怎么样?它简化了任何Java项目的依赖管理,但学习如何使用它需要一些时间。

  • 如何构建工具?例如,Apache ANT只是一个为Java项目设计的类似工具。与maven不同,它以任何你想要的顺序组装项目。

  • JSmooth怎么样?它将你的项目打包成可执行文件。

    忘记包含许可证。当您分发第三方JAR时,许可声明也应该分发。

无论如何,分发有很多目的。例如,准备在Web容器中部署和运行的依赖关系。通常,我们有部署工具(由web容器提供者提供的ant任务或maven插件)。例如,为独立的Java应用程序准备依赖关系。在这种情况下,我们应该制定部署工具并考虑自己的过程:

  • 应用程序如何运送到生产环境?通过网址下载,通过scp复制,从发布分支在git回购签出?
  • 如何更新生产中的应用程序?这是一个重要的问题,当您遇到问题时,需要快速修复并进行热部署。
  • 关于类路径中JAR的更好的顺序是什么?错误的订单将导致类映射或加载错误的配置文件。
1

你需要将一些依赖的jar添加到classpath中。

你既可以:

  • 列表中的其他罐子的依赖关系,只是指示您的 “API”将它们添加到自己的类路径的用户。

  • 如果你的“api”涉及到一个主类,并且你想把它作为一个可执行的jar来发布,你可以用包含所需库的外部文件夹来发布你的jar,然后修改你的jar清单来指定你的主类,类路径包括那些external dependencies

  • 如果你用maven,然后列出它们在你的依赖那么他们将自动包含在客户端的代码,因为他们会被视为是transitive dependencies.

  • 阴影罐子 - 因此开箱包括他们他们的内容并将它们包含在你的jar中。有三种方式映入脑海此*:

    • 如果您正在构建的API中行家,你可以看看shade plugin
    • 你可以看看使用有点可笑命名Jar Jar Links
    • (?!)
    • eclipse“export as executable jar”允许你保存一个类似功能的ant文件。

(*在任何情况下,它取决于依赖库的许可,他们是否允许你这样做) -

+0

我不想创建可执行jar文件。我没有任何主要课程。我想创建一个将被其他人使用的jar文件,就像我使用的API一样。但是我需要将这些API添加到我的jar文件中,以便人们不必逐个添加这些API以便使用我的API。 – atakan 2012-07-11 06:23:49

+0

所以你想遮蔽罐子 - 或沿着maven路线走下去。 – plasma147 2012-07-11 07:58:25