ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java 工程打包成库需要依赖其它外部库的打包方式

2019-06-14 13:41:53  阅读:258  来源: 互联网

标签:成库 Java 工程 jar step 2.9 libs 打包


2019-06-14

关键字:Java 打包、jar 打包依赖


 

经常会有将 Java 工程打包成一个 jar 库的形式以供其它工程调用的需求。而我们需要被打包成 jar 库的工程中也难免会有需要依赖外部其它 jar 库的情况。比如,我们自己开发一个通过 HTTP 访问网络资源的工程,这个工程需要解析 XML 文件,我们通常不会自己从零开发 XML 解析的功能,网络上已经有很多现成的 XML 解析 jar 库,直接拿来用就好了。在这种情况下,我们自己的 HTTP 访问网络资源工程在开发好以后,如果直接以普通的方式打包成 jar 库,在其它工程中引用时,是会报错的,会报一个 XML 解析相关的类找不到的异常。发生这种情况的原因就是我们的普通 jar 打包方式不会将工程中的库依赖也打包进去。

 

那怎么解决呢? 其实很简单。下面以 eclipse 中构建的工程为例进行讲解。

 

step 1

在该工程右键,选择导出工程。

 

step 2

在弹出的对话框中选择 JAR file

 

step 3

再在弹出来的对话框中勾选一些信息,一定要注意哪些能勾哪些不能勾。按照下图所示来即可

 

step 4

直接下一步

 

step 5

这一步需要注意,这里我们必须手动指定一个 MANIFEST.MF 文件,这份文件内部记载了我们的其它第三方 jar 库的依赖路径关系。

至于这个 MANIFEST.MF 文件的内容,则如下所示

Manifest-Version: 1.0
Class-Path: libs/jackson-annotations-2.9.9.jar libs/jackson-core-2.9.9.jar libs/jackson-databind-2.9.9.jar

重点内容就是上面的 Class-Path 项,这项的值填的就是你的外部库的相对路径,多个库之间以空格隔开。

 

需要注意的是,这些第三方的 jar 库也需要一起放到新的工程对应目录下。就是说,这些外部的 jar 库仍然不会一起打包进你自己的 jar 库里去。在你后面要引用你自己打包的 jar  库时,这些外部库也需要一并放进对应目录。

 

step 6

导出完成。

 

然后在使用方面。假设我们经过前面的步骤已经成功导出了一个名为 japi.jar 的库文件。这个时候我们新建了一个工程 japi_client_test 工程,将这个 japi.jar 作为外部库引入。

 

那么,正确的库文件结构应该如下图这样

在前面的 MANIFEST.MF 中我们有填到 3 个外部库,它的依赖路径为

1、libs/jackson-annotations-2.9.9.jar

2、libs/jackson-core-2.9.9.jar

3、libs/jackson-databind-2.9.9.jar

 

 所以在这里,也必须将这 3 个第三方的 jar 库放入到一个 libs 目录下,与我们的 japi.jar 具同等地位。

 

最后,还不能忘记要将它们都添加到新工程的外部依赖库路径中去,如下图所示

 

如此一来,便大功告成了。 

 


 

标签:成库,Java,工程,jar,step,2.9,libs,打包
来源: https://www.cnblogs.com/chorm590/p/10977905.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有