maven加载jar

 

      假如,你有一个已经下载或者编译好的jar包(本地),如何加入到maven的项目中?

      举例子吧: 

      别人实现了bloom-filter算法,打了一个java-bloomfilter-1.0.jar的包。

       1、找到并下载该包到本地,可以任意找个位置保存,例如保存在mylib文件夹下;

       2、安装该jar包到maven的本地仓库中,主要用到maven的命令:

            root]#  mvn install:install-file   -Dfile=java-bloomfilter-1.0.jar  -DgroupId=com.sina  -DartifactId=java-bloomfilter -Dversion=1.0  -Dpackaging=jar

           上面的命令解释:

            -Dfile:指明你当前jar包的位置(就是第1步存放jar的路径+jar包名);

            -DgroupId, -DartifactId,  -Dversion:三个参数,就是指明了存放maven仓库中的位置;(看后面的相关解释或者阅读文献【1】);

            -Dpackaging :猜测就是指明文件类型;

      3、在执行完上述maven安装命令后,系统在默认的maven仓库中,按照参数指定的位置创建文件夹和文件,并移入jar包。您需要在你的maven项目的pom.xml文件中加入

            该jar包的引用即可:

            <dependency>
               <groupId>com.sina</groupId>
               <artifactId>java-bloomfilter</artifactId>
               <version>1.0</version>
            </dependency>

         4、编译你的工程项目,利用mvn compile测试是否有错。按照常理应该是不会再有问题了。

 

***********************万恶的分割线********************************

这里多写一点吧,maven项目的pom.xml文件内的依赖,都是先从本地的maven仓库搜寻,如果找不到,再去寻址下载。这里讲一下,它是如何搜索本地仓库的。

默认是在您当前用户名下的.m2的repository文件夹下,依据pom.xml提供的信息进行搜寻。例如,我们上面在pom.xml文件中加入了如下信息:

           <dependency>
               <groupId>com.sina</groupId>
               <artifactId>java-bloomfilter</artifactId>
               <version>1.0</version>
            </dependency>

maven,就会将<groupId>的值,以“.”分割,分成多个文件夹,“.”左边的文件夹认为是包含“.”右边的文件夹。就比如:<groupId>com.sina</groupId>

就是com/sina/。它会找com/文件夹下是否包含sina文件夹。找到后,以次查找<artifactId>、<version>,分别当成是一个文件夹,并认为是前者包含后者,最终认定路径是:“xxxUser/.m2/repository/com/sina/java-bloomfilter/1.0/“

找到路径后,又会查找以“<artifactId>+“-”+<version>的文件名的jar包,即java-bloomfilter-1.0.jar包。

如果找不到,就会网上的<groupId>指定的地址,然后按照上述方式再查找该包,并下载包。下载的位置也是按照上述方式创建文件夹,进行保存。

 

PS:我们的jar开始就是利用mvn的命令安装的。它自然会按照上述路径的组织方式,进行jar包的安放。(别忘了,那几个重要参数!!!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值