一、背景介绍:
是这个样子的,我自己写了一个数据库连接工具,基于jdbc,提供对oracle、mysql、sqlserver等主流数据库的支持,提供了加载数据库驱动、获取conn连接,支持设置socke连接和读取超时(网络不稳定或延迟高的环境下特别有用),关闭conn连接的公共方法,方便以后项目进行复用。
于是我把写好的modul打包成1个jar包,因为用到了数据库,所以不得不引入第三方数据库的jar包,就是因为这个第三方的jar包,在新项目中运行时,老是提示找不到类,把我烦透了。
二、Idea如何打包jar包:
不说maven,Idea打包jar包通常有两种形式,一、可执行的jar包,这个比较简单,选择主类就好了,按照操作一步一步来,这个也是我们平常用的比较多的打包成jar包的方式。二、打包成工具jar包,不含主类,就类似于第三方驱动一样,在需要用到的地方,把咱们的jar包引入就可以使用。
三、正确打包成工具jar包:
1、首先鼠标左键点击File,然后打开Project Structure...,选择Artifacts, 然后点击+号,在弹出框里面选JAR Empty
2、然后输入Name的名字,比如叫MySdk,点击下面的+号,依次添加Module Output 和Extracted Directory ,Modul Output即本modul编译生成的class文件和环境,Extracted Directory用于引入modul中用到的第三方jar包,前面说的在新项目中引用提示找不到第三方jar包里面的类,就是因为没有添加这个,所以要特别注意!
3、点击Extracted Directory后,会弹框要求你选择你项目中用到的第三方jar包,你只需要依次将你项目中用到的第三方jar包依次进行添加即可,然后点击OK。
4、拿本项目举例,添加后的Output Layout应该如下图所示,然后点击OK。
5、最后一步,点击Build的Build Artifacts.. ,在弹出框中选择你刚才建立的jar名称,然后点击build即可,生成的jar包默认会在你项目的out/artificts/文件夹下面,你自己找一下。
6、然后你就可以在你的新项目中有用到jdbc连接数据库的情况下,引入该jar包,就可以通过他来操作数据库了,不需要再重复写jdbc连接数据库的模板代码了。在一定程度上解放了双手,而且有问题时也能集中进行修改,修改完之后再重新打包成1个jar包。
四、总结:
别说是打包成1个小小的jar包,确实还花费我不小时间,在网上找了很多资料,基本都是关于打包成可执行jar包的,关于直接将modul打包成第三方sdk还是很少的,尤其是本项目中又用到其它的第三方jar包的时候,如果打包时忘记引入了Extracted Directory,在新项目中使用本jar包时,编译不会报错,但运行时控制台会打印报错,提示找不到第三方jar包里面的类。
五、写作目的:
1、这个东西确实花费了我不少时间,把他记录下来,怕下次再用到的时候忘记。
2、分享给大家看,也许大家也曾遇到过类似问题,或者以后需要用到。
3、将自己的项目打包成sdk,其实也是一项技能,对自己也确实是一件很炫酷的事。
4、开发经验总结,代码复用,项目复用。