一、本文1到6 讲述了如何简单的不把第三方包打包在一起
二、7到12 讲述了如何设置一个libs把第三方包都丢在一个目录里
三、12以后 讲述了面对多层目录的第三方jar包,如何打包的问题
2. 开始打包,先点击项目右键,然后按图选择Open Module Settings
4. 选择copy那个,res的文件任意写一个目录我这里写res1
6. 执行编译
先build project 再build Artifacts
到了这一步,已经可以成功的编译一个不包含第三方包的小小的jar文件了。
我的第三方文件bbCommon.jar 和 test.jar 在一个目录下
当开发Hbase的时候,我遇到了很多文件不下20个jar文件,这个时候,我不希望我新做的jar 和 那些类包在一个目录下
我希望类包单独存放在libs/目录下 我自己的文件test.jar 单独在外面,请继续看
为了区分,我下面的图例新建了一个Artifacts 名字叫test_jar3 , res文件也不是刚才的res1 而是res3
7. 设置外置文件夹
9. 点击test.jar文件,修改classpath
10. 加上路径libs
11. 重新build jar包 , 看下效果
到此为止,对付少量单一jar文件,比如5,6个,没问题。但是开发Hbase的时候,遇到了一个神奇的问题,jar无论如何拖,都失败,我发现是因为Hbase 引入的Jar是多层目录,所以遇到多层目录继续看
12. 多层目录的Hbase开发项目图
我的处理方案:
1. 从1到6 重做,不设置libs目录,直接编译一次。
所有的第三方文件混乱的和我要打包出来的文件Leo.jar 混在一个目录下
2. 把这个目录的文件都拷贝到桌面,在桌面新建一个文件夹libs 丢进来。
3. 重做到第7步, 在刚才拖入第三方文件到libs的地方,删除所有第三方文件
4. 利用引入外部包的模式- 这一步看图
5. 也要设置classpath
很成功的打包成功,且所有第三方文件到了libs下了。