我是Java的新手,我写了一个API,我想分发它。我正在创建一个Jar文件来创建一个API,但是我的程序使用了一些其他API,比如Jena和XSOM。如何在Eclipse的帮助下将这些API包括到我的Jar发行版中?我已阅读过类似的问题,但找不到答案。向我的Java API添加依赖关系
1
A
回答
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文件。
(*在任何情况下,它取决于依赖库的许可,他们是否允许你这样做) -
相关问题
- 1. Gradle:添加依赖关系
- 2. 向EJB添加依赖关系
- 3. Gradle IntelliJ添加Java依赖关系
- 4. NetBeans中的Maven项目:如何向“依赖关系”和“测试依赖关系”添加依赖关系?
- 5. 添加maven依赖关系
- 6. 添加jar文件依赖关系
- 7. 依赖关系的nuget依赖关系
- 8. Android Studio - 无法添加依赖关系?
- 9. Maven:添加非JAR依赖关系
- 10. 将Maven依赖关系添加到Eclipse
- 11. 我如何找到Java依赖关系?
- 12. Java Maven Jar依赖关系
- 13. java maven rebuild依赖关系
- 14. Java System.loadLibrary依赖关系
- 15. Unbungling我的依赖关系
- 16. 添加依赖到我的build.gradle在android工作室(与依赖关系冲突)
- 17. 为什么Maven在添加新的依赖关系时重新添加已存在的依赖关系?
- 18. 使用Intellij IDEA向XML添加Maven依赖关系
- 19. 向定制Gradle插件添加依赖关系
- 20. 向SBT构建添加“播放WS独立”依赖关系
- 21. 使用jarbundler ant任务向应用添加依赖关系
- 22. IntelliJ IDEA 16向类路径添加maven依赖关系
- 23. 依赖关系
- 24. flickrj依赖关系
- 25. tools.jar依赖关系
- 26. 与SBT的Google Ads API依赖关系
- 27. Google Apps Marketplace API的Maven依赖关系
- 28. URLClassloader依赖关系
- 29. 依赖的Maven副本依赖关系
- 30. 我应该添加NetCoreapp作为依赖关系
我不想创建可执行jar文件。我没有任何主要课程。我想创建一个将被其他人使用的jar文件,就像我使用的API一样。但是我需要将这些API添加到我的jar文件中,以便人们不必逐个添加这些API以便使用我的API。 – atakan 2012-07-11 06:23:49
所以你想遮蔽罐子 - 或沿着maven路线走下去。 – plasma147 2012-07-11 07:58:25