maven作为包管理工具,好处不必多说。但是有些情况,比如需要引入第三方包,如快递鸟,支付宝,微信等jar包(当然有可能直接提供maven依赖),如果直接下载到本地之后,怎么整合到自己的maven工程呢?

方式挺多的,下面列举四种方式

1. 上传到maven中心仓库

https://oss.sonatype.org/

愿意折腾可也搞搞,可以参考 如何发布Jar包到Maven中央仓库(确实比较麻烦)

如这是我手动上传到maven中央仓库的jar包 https://mvnrepository.com/search?q=chendahai

优点:可以直接在pom.xml中引入,打包部署没有问题

缺点:上传复杂,麻烦(创建工单,生成秘钥等等)

2. 搭建maven私服

手动在后台管理页面上传,之后pom.xml引入

上传方式查看 maven私服nexus上传第三方jar包以及下载

优点:下载速度快,maven聚合项目更适用,内部适用deploy即可,打包部署没有问题

缺点:相比第一种还要麻烦些,还占用本地服务器资源

3. 传统方式

java SE的套路

新建lib包,之后导入(eclipse直接build path)(idea麻烦些:File→project structure→libraries→+jar包)

优点:简单,不用做额外的配置

缺点:协作开发,多人都需做同样的操作,沟通也是一回事

4. pom文件scope的system属性

优点:配置后之后直接引入,maven reImport即可

缺点:没啥缺点,就是配置者得费些时间

前置条件

要引入如下taobao-sdk-java.jar

操作

  1. 自定义目录,这里在project的根目录新建lib文件夹,将jar放进去

  2. pom.xml中引入

        <dependency>
<groupId>dingding</groupId>
<artifactId>dingding</artifactId>
<version>2.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/taobao-sdk-java.jar</systemPath>
</dependency>

注意:

  • groupId:自定义
  • artifactId:自定义
  • version:自定义
  • scope:必须是system
  • systemPath:jar包的路径(idea编写的时候会有提示的)

通过上述方式,在开发环境没有什么问题,不会存在什么包找不到等情况

但是,maven project部署一般打包发布,所以打包是需要额外配置的(上述的第一二中方式不需要做额外处理)

处理打包

打包的时候需要做如下配置,需要通过resource标签引入,位置build→resources→resource

 <build>
<resources>
<resource>
<directory>lib</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>
</build>
  • directory:指定lib文件夹的位置,由于是相对工程根目录,所以直接写上lib即可
  • targetPath:打包到的文件夹位置,写上BOOT-INF/lib即可,或者是WEB-INF/lib。【斜杠(/)加不加都行,如果是mac的话写./】
  • includes:一般都是以jar结尾,就写**/*.jar

较为完整的pom.xml

        <dependency>
<groupId>dingding</groupId>
<artifactId>dingding</artifactId>
<version>2.8</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1479188381469-20190628.jar</systemPath>
</dependency> </dependencies>
<build>
<resources>
<resource>
<directory>lib</directory>
<targetPath>/BOOT-INF/lib/</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</resources>

ok,mvn package即可。

maven管理本地jar包的更多相关文章

  1. maven管理本地jar包注意事项

    今天lucene中集成第三方中文分词器IKAnalyzer的时候遇到了相似的问题:lucene版本4.9.IKAnalyzer版本2012FF_hf1 直接去maven仓库下载,pom配置如下: &l ...

  2. 解决Maven关于本地jar包的打包处理

    在使用maven进行jar包管理时,通过我们都是通过maven去下载一些jar包,但有些jar在maven上没有,所以就就可能在本地直接手动加入一些需要用到的外部jar包.但如果我们用maven pa ...

  3. maven 把本地jar包打进本地仓库

    maven 把本地jar包打进本地仓库 1.本地有自己写的项目jar包,但是需要用maven依赖对其进行引用: 2.某个jar包在远程仓库没有,导致pom.xml报错,此时可以从网上单独下载此jar包 ...

  4. maven添加本地jar包

    今天遇到一个mavan仓库中没有的jar包, 故只能添加本地jar包, 花了不少时间找资料,终于OK.故在此记录. 1. 第一次,在网上看到说可以用<systemPath> 解决, 如下: ...

  5. maven使用本地jar包

    引入本地jar包 方式一:将本地Jar包安装到本地仓库,再按常规方式引用 mvn install:install-file -Dfile=libs\tools.jar -DgroupId=com.su ...

  6. Maven使用本地jar包(两种方式)

    有些项目会用到一些Maven库上没有的jar包,这就需要我们自己引入了 这种情况有两种办法: 第一种方式,在pom文件中引用时使用本地路径: 首先把jar包放到项目中: 然后在pom文件中引入: &l ...

  7. maven引用本地jar包

    教程:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 安装 到下载maven: http://maven.apache. ...

  8. maven添加本地jar包到本地仓库

    1 进入jar包所在文件夹,进入cmd命令 2 执行命令 mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -Dartif ...

  9. maven构建本地jar包到本地仓库

    maven命令: mvn:install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=1.0 -Dpackaging ...

随机推荐

  1. The 'stream().forEach()' chain can be replaced with 'forEach()' (may change semantics)

    对集合操作时,因不同的写法Idea经常会提示:The 'stream().forEach()' chain can be replaced with 'forEach()' (may change s ...

  2. Android-ION内存管理简介

    ION内存管理简介 https://www.jianshu.com/p/4f681f6ddc3b http://kernel.meizu.com/memory%20management%20-%20i ...

  3. 大一C语言学习笔记(11)---编程篇--写一个程序,可以获取从键盘上输入的的三个数,并能够判断是否可以以这三个数字作为边长来构成一个三角形,如果可以的话,输出此三角形的周长及面积,要求 0 bug;

    考核内容: 写一个程序,可以获取从键盘上输入的的三个数,并能够判断是否可以以这三个数字作为边长来构成一个三角形,如果可以的话,输出此三角形的周长及面积: 答案: #include<stdio.h ...

  4. 动态代理中newProxyInstance中三个参数

     JDK Proxy(代理对象): Proxy.newProxyInstance 方法的三个参数创建代理对象 增强 person对象 使用代理对象代替person 去执行 doCourt方法参数1 类 ...

  5. 菜鸡的Java笔记 日期操作类

    日期操作类        Date 类与 long 数据类型的转换        SimpleDateFormat 类的使用        Calendar 类的使用                如 ...

  6. 题解 P6345 [CCO 2017]接雨滴

    解题思路 NOIP在即,感觉即将退役,或许是最后一篇题解了... 求水的体积不是特别好求,我们考虑求出 水+柱子 的体积最后再减去柱子的体积. 发现对于最高的柱子在中间的情况其实可以把最高柱子一侧的柱 ...

  7. python实现图像梯度

    一,定义与作用 图像梯度作用:获取图像边缘信息 二,Sobel 算子与函数的使用 (1)Sobel 算子------来计算变化率 (2)Sobel函数的使用 (3-1)代码实现(分别): (3-2)代 ...

  8. Financial Tsunami

    COP 3502: PROGRAMMING ASSIGNMENT 4 DUE DATE: MARCH 16, 4:00 PM Name your class as PA4 and turn in .j ...

  9. ROS机器人开发实践1->SSH远程登录要点记录

    1.有线网卡 设置 找到有线网络,点击设置,修改其中的IPv4的地址和子网掩码. 1 //地址 2 192.168.xxx.xxx 3 //子网掩码 4 255.255.255.0 点击应用 2.配置 ...

  10. Codeforces 796E - Exam Cheating(dp)

    Codeforces 题目传送门 & 洛谷题目传送门 当被数据结构搞自闭的 tzc 信心满满地点开一道 *2400 的 dp 题时-- 却发现自己不会做?! 这足以证明蒟蒻 dp 之菜/dk/ ...