maven管理本地jar包
maven作为包管理工具,好处不必多说。但是有些情况,比如需要引入第三方包,如快递鸟,支付宝,微信等jar包(当然有可能直接提供maven依赖),如果直接下载到本地之后,怎么整合到自己的maven工程呢?
方式挺多的,下面列举四种方式
1. 上传到maven中心仓库
愿意折腾可也搞搞,可以参考 如何发布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
操作
自定义目录,这里在project的根目录新建lib文件夹,将jar放进去

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包的更多相关文章
- maven管理本地jar包注意事项
		
今天lucene中集成第三方中文分词器IKAnalyzer的时候遇到了相似的问题:lucene版本4.9.IKAnalyzer版本2012FF_hf1 直接去maven仓库下载,pom配置如下: &l ...
 - 解决Maven关于本地jar包的打包处理
		
在使用maven进行jar包管理时,通过我们都是通过maven去下载一些jar包,但有些jar在maven上没有,所以就就可能在本地直接手动加入一些需要用到的外部jar包.但如果我们用maven pa ...
 - maven 把本地jar包打进本地仓库
		
maven 把本地jar包打进本地仓库 1.本地有自己写的项目jar包,但是需要用maven依赖对其进行引用: 2.某个jar包在远程仓库没有,导致pom.xml报错,此时可以从网上单独下载此jar包 ...
 - maven添加本地jar包
		
今天遇到一个mavan仓库中没有的jar包, 故只能添加本地jar包, 花了不少时间找资料,终于OK.故在此记录. 1. 第一次,在网上看到说可以用<systemPath> 解决, 如下: ...
 - maven使用本地jar包
		
引入本地jar包 方式一:将本地Jar包安装到本地仓库,再按常规方式引用 mvn install:install-file -Dfile=libs\tools.jar -DgroupId=com.su ...
 - Maven使用本地jar包(两种方式)
		
有些项目会用到一些Maven库上没有的jar包,这就需要我们自己引入了 这种情况有两种办法: 第一种方式,在pom文件中引用时使用本地路径: 首先把jar包放到项目中: 然后在pom文件中引入: &l ...
 - maven引用本地jar包
		
教程:http://www.cnblogs.com/dcba1112/archive/2011/05/01/2033805.html 安装 到下载maven: http://maven.apache. ...
 - maven添加本地jar包到本地仓库
		
1 进入jar包所在文件夹,进入cmd命令 2 执行命令 mvn install:install-file -Dfile=ojdbc6.jar -DgroupId=com.oracle -Dartif ...
 - maven构建本地jar包到本地仓库
		
maven命令: mvn:install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=1.0 -Dpackaging ...
 
随机推荐
- jmeter压测IP欺骗绕过服务端限流
			
1.环境声明 jmeter3.0 后端为内网环境 2.检查内网闲置的ip 工具地址,无需复杂安装,解压点击就可以用啦~~ https://pan.baidu.com/s/1Yzs1vezfFMoy-m ...
 - SpringCloud升级之路2020.0.x版-32. 改进负载均衡算法
			
本系列代码地址:https://github.com/JoJoTec/spring-cloud-parent 在前面一节,我们梳理了实现 Feign 断路器以及线程隔离的思路,这一节,我们先不看如何源 ...
 - 印象最深的一个bug:sessionStorage缓存在移动端失效
			
无bug,不程序:作为程序员的我,不是修bug就是在写bug的路上. 移动端sessionStorage缓存失效是我"印象最深的一个bug"之一,为啥呢,因为这个问题导致我加班到很 ...
 - <C#任务导引教程>练习一
			
//1,定位显示ASCI码值为30到119的字符using System;class Program{ static void Main() { int i, n = 0; ...
 - [atAGC052D]Equal LIS
			
令$f_{i}$表示以$i$为结尾的最长上升子序列,显然可以快速预处理 令$L=\max_{i=1}^{n}f_{i}$,当$L$为偶数,考虑如下构造-- 将所有$f_{i}\le \frac{L}{ ...
 - [atARC066F]Contest with Drinks Hard
			
先不考虑修改,那么很明显即对于每一个极长的的区间,若其长度为$l$,有${l+1\choose 2}$的贡献 考虑dp去做,即$f_{i}$表示前$i$个数最大的答案,则$$f_{i}=\max(\m ...
 - [loj3347]有趣的旅途
			
考虑求出重心,以0为根建树,求出第 $i$个点的子树大小$sz[i]$($a(0,i)$),则满足$n-sz[i]\le \lfloor\frac{n}{2}\rfloor$的$sz[i]$中的最小值 ...
 - [loj2494]寻宝游戏
			
将$n+1$个数字(还有0)标号为$[0,n]$,那么定义$a_{i,j}$表示第j个数上第i位上的值,如果第$i-1$个数与第$i$个数之间的运算符为与,那么令$b_{i}=1$,否则$b_{i}= ...
 - 基于CarbonData的电信时空大数据探索
			
摘要:作为IOT最底层的无线通信网络生成大量与位置相关的数据,用于无线通信网络规划和优化,帮助电信运营商建设更好体验的精品网络,构建万物互联的信息社会. 本文分享自华为云社区<基于CarbonD ...
 - Codeforces 627E - Orchestra(双向链表,思维题)
			
Codeforces 题目传送门 & 洛谷题目传送门 下设 \(n,m\) 同阶. 首先有一个傻子都会的暴力做法,枚举矩形的上.下边界 \(l,r\),考虑集合多重集 \(S=\{y|x\in ...