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包的方法

    一.第一种方式: 1.电脑安装maven 2.下载jar.例如 gj.jar 3.把jar随便放一个位置 4.在jar包目录下打开cmd输入: mvn install:install-file -Df ...

  2. Maven引入本地Jar包并打包进War包中

    1.概述 在平时的开发中,有一些Jar包因为种种原因,在Maven的中央仓库中没有收录,所以就要使用本地引入的方式加入进来. 2. 拷贝至项目根目录 项目根目录即pom.xml文件所在的同级目录,可以 ...

  3. maven添加本地jar包的方法

    1.将一个本地的jar包随便放在一个放入本地文件夹中 (文件夹位置 和 jar包名称都随意) 例:F:\java\repository\a 文件夹下,名称为:icepdf-core-6.0.jar 2 ...

  4. Maven引入本地jar包

    <dependency> <groupId>${gorup}</groupId> <artifactId>${artifact}</artifac ...

  5. pringboot pom文件引入本地jar包和对其打jar包

    maven引入本地jar包需要在pom文件中天剑如下配置: <dependency> <groupId>com.baidu</groupId> <artifa ...

  6. maven pom 引入本地jar包

    maven pom 引入本地jar包 在pom.xml同级目录下新建lib文件夹,并放入本地jar包. 配置Jar包的dependency,包括groupId,artifactId,version三个 ...

  7. springboot(六) Maven打包引入本地jar包

       springboot Maven打包引入本地jar包 最近在做项目的时候,有一些jar包不存在maven的依赖库中,所以需要自己引入本地jar包来达到需求,那么我们该如何去将本地的jar包引入s ...

  8. Springboot中如何引入本地jar包,并通过maven把项目成功打包成jar包部署

    最近尝试引入阿里云的短信验证码,阿里云的core sdk是maven就有的,但是短信相关的jar包却不是放在maven的,所以得引入本地的下载回来的jar包.本地开发直接引入,idea是可以直接跑调用 ...

  9. maven使用本地jar包

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

随机推荐

  1. Linux下复位USB设备

    有时候USB设备出错,这时我们希望通过软件复位一下USB设备,可以参考下面这段代码: #include <stdio.h> #include <unistd.h> #inclu ...

  2. JS如何重写一个函数

    分享一些自己在开发上遇到的问题,比如我们页面上用了大量的打印语句,但是在某些时候,我们不想要了. 解决方案1 : 我们删除这里的代码,如果太多了,那工作量太大好累,想想都不想干 解决方案2 :我们将c ...

  3. 牛客网2016.4.11(两个数相加为sum/计数一个int型的二进制有多少个1/二叉树是否左右对称)

    求最小的两个数相加为sum //求最小的两个数相加为sum public ArrayList<Integer> FindNumbersWithSum(int [] array,int su ...

  4. 使用 Docker Compose 快速构建 TiDB 集群

    本文档介绍如何在单机上通过 Docker Compose 快速一键部署一套 TiDB 测试集群.Docker Compose 可以通过一个 YAML 文件定义多个容器的应用服务,然后一键启动或停止. ...

  5. 学习整理:用webpack4.x构建基本项目

    webpack4 在2018年就已经发布了, 相比webpack3,webpack4需要的配置减少了很多,对入口和出口配置都有默认设置可以不用手动设置,但还是要在webpack.config.js中配 ...

  6. PHP 递归读取无限级分类

    /** * [获取第一级分类] * 20170829 * * @return array */ public function getCateList(){ $this->catelog = [ ...

  7. ASP.NET Core 3.0中使用动态控制器路由

    原文:Dynamic controller routing in ASP.NET Core 3.0 作者:Filip W 译文:https://www.cnblogs.com/lwqlun/p/114 ...

  8. Oracle大量数据更新策略

    生产上要修改某个产品的产品代号, 而我们系统是以产品为中心的, 牵一发而动全身, 涉及表几乎覆盖全部, 有些表数据量是相当大的, 达到千万, 亿级别. 单纯的维护产品代号的 SQL 是不难的, 但是性 ...

  9. [python]代码中包含中文,提示:SyntaxError: Non-ASCII character '\xcd'

    解决方法: 把文件编码方式改为gbk即可.在代码开头写上: # coding=gbk

  10. codeforce#483div2C-Finite or not?数论,GCD

    传送门:http://codeforces.com/contest/984/problem/C 这道题 题意:求q/p是否能用k进制有限表示小数点后的数:   思路:数学推理:     1.首先把q/ ...