怎么在maven项目中引用本地Java类库
去年实习的时候听说过maven,听说功能特别强大,后来就抽时间自学了一下,尤其感叹于其自动引入jar包的功能,真是太棒了,终于某种程度上把程序猿从classnotfoundexception中解脱出来了,也一定程度上解决了jar包冲突以及版本的问题,但在这几天玩微信开发的时候遇到了一个问题:
我的微信后台是托管到SAE上的,但SAE官方处于安全考虑,把XStream中sun.misc.Unsafe类禁用掉了,这就导致了一个问题XStream不能用了,CSDN知名博主刘峰老师发现了这个问题,于是柳峰老师修改了一下这个类库,其实很简单也即在XStream官方网站http://xstream.codehaus.org/上找到了xstream-1.3.1.jar对应的源码,导入到Eclipse,然后借助Eclipse强大的搜索功能,很快找到了使用sun.misc.Unsafe的类,我尝试将这些类删除或者修改它们的实现,避免使用sun.misc.Unsafe类,最终得到了一个新的jar包,将其命名为xstream-1.3.1-sae-liufeng.jar,用它替换以前项目中使用的xstream-1.3.1.jar,最终项目再次顺利地运行在SAE上,这个方法虽简单粗暴,但确实有效,但是也给我带来了一个问题,我的项目是maven搭建的,那么我怎么把这个jar引入到我的项目中呢?
经过查询资料原来我们可以把本地的jar文件安装到本地repository中,这就完美解决这个问题了,那么怎么把本地的jar文件安装到本地repository中呢?强大的maven当然给我们提供了这个方法:
mvn install:install-file -Dfile=xstream-1.3.1-sae-liufeng.jar -DgroupId=cn.bridgeli -DartifactId=xstream-bridgeli -Dversion=1.3.1 -Dpackaging=jar -DgeneratePom=true
相信这条命令不用我解释了,看这篇文章的人一定可以自己看懂的。需要说明的是:执行完这条命令,我们本地的jar就被安装到本地库了文件夹的结构是:cnbridgelixstream-bridgeli1.3.1,即DgroupId + DartifactId + Dversion,文件的名字是:xstream-bridgeli-1.3.1.jar,即:DartifactId + Dversion + . + Dpackaging,然后只需要在我们的项目中引用就可以了,引用的代码:
<dependency> <groupId>cn.bridgeli</groupId> <artifactId>xstream-bridgeli</artifactId> <version>1.3.1</version> </dependency>
其中groupId、artifactId、version分别于刚才的命令相对应。
参考:http://blog.csdn.net/youhaodeyi/article/details/1729116
注:我为什么没有采取方法参考资料中的方法二,原因有三:
1. 这个jar并没有加入到本地库中,不利于我们对自己资料的管理
2. scope被设置成system并不被maven官方所推荐
3. 据有网友说scope被设置成system,那么这个类库并不会被打到war中,这个我没有测试
作 者: BridgeLi,https://www.bridgeli.cn
原文链接:http://www.bridgeli.cn/archives/94
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
近期评论