在maven中引入本地jar包的步骤

目录
  • 1 起因
  • 2 解决方案
    • 2.1 在pom中引入
    • 2.2 Spring Boot 打包处理
    • 2.3 拓展: Spring Boot 打包加入其它资源

1 起因

在和一些第三方厂商对接的过程中, 偶尔会遇到对方提供的SDK自带maven无法获取的jar包的情况(对于开源激进者的笔者很讨厌这种行为)

我们该如何处理这种情况呢, 其实解决思路很简单:

  • 在pom中引入本地jar
  • 打包时本地jar包含在内

让我们来看看具体怎么操作吧

idea中虽然可以在项目配置加入, 但打包时会报错, 相关的处理方案不再思考

2 解决方案

首先, 终极解决方案是: 把jar包传到自己的maven私服上

对于没有自己私服的小伙伴们这是句废话, 我们还是来看看实际的吧

2.1 在pom中引入

以下是我个人的解决方案, 先介绍下项目目录:

project
    |---src
    |---lib
         |---pig.jar
    |---pom.xml

我们可直接在pom中加入如下引用:

<dependency>   
    <groupId>cn.com.pig</groupId>   
    <artifactId>pig</artifactId>   
    <version>1.0</version>   
    <scope>system</scope>   
    <systemPath>${project.basedir}/lib/pig.jar</systemPath>
</dependency>

其中的groupId, version等内容, 可以在idea中打开jar包, 查看里面的MANIFEST.MF获取

2.2 Spring Boot 打包处理

完成了pom引入后, 直接执行maven的package命令, 会出现找不到pig.jar的问题, 我们继续来进行修改:

<build>   
    <plugins>       
        <plugin>           
            <groupId>org.springframework.boot</groupId>           
            <artifactId>spring-boot-maven-plugin</artifactId>       
            <!--加入这条配置即可-->
            <configuration>               
                <includeSystemScope>true</includeSystemScope>           
            </configuration>       
        </plugin>   
    </plugins>
<build>

2.3 拓展: Spring Boot 打包加入其它资源

在和硬件设备交互时, 我们除了基础的jar包外, 可能还需要引入一些dll文件(当然, 笔者更推荐将这些dll放在项目外部, 引用时通过绝对路径处理)

可以采用下面的方式来加入这些资源:

<resources>   
    <resource> 
        <directory>dll</directory>       
        <targetPath>/BOOT-INF/dll/</targetPath>       
        <includes>           
            <include>*.*</include>       
        </includes>   
    </resource>
</resources>

对上面的参数进行下讲解:

  • directory: 本地路径, dll即project/dll
  • targetPath: 打包完成后在jar包中的路径, 如果开头不为/, 默认在classes目录下追加, 例如dll, 则会实际生成在/BOOT-INF/classes/dll, 上面填写的则会打包到/BOOT-INF/dll
  • include: 包含文件, *.*为所有

以上就是在maven中引入本地jar包的步骤的详细内容,更多关于maven中引入本地jar包的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解Maven JAR包冲突问题排查及解决方案

    前言 写这篇文章的初衷是因为今天在使用mvn dependency:tree命令时,突然想起一年前面试阿里的一道面试题.面试题是说假设线上发生JAR包冲突,应该怎么排查?我那时候的回答是IDEA有个Maven Helper的插件,可以帮忙分析依赖冲突,然后还有一种办法是如果一个类import的时候提示两个地方可导入,那就说明有冲突.现在回头想想确实太不专业了,以下是一次JAR包冲突的一个比较正规的流程,是通过整理几篇博客后总结的希望对大家也有帮助,如果有错误的地方也欢迎指出 GitHub地址:h

  • 解决IDEA无法读取maven镜像,jar包下载失败的问题

    最近从公司私服下载jar包一直失败,之前的解决方法是手动下载项目,自己打包来解决的,最近忍无可忍,自己研究了o(╥﹏╥)o. 原因 idea现在的版本要求maven的镜像必须是https的,而之前的配置的镜像都是http的,所以镜像加载失败了,读取的是maven默认的仓库,所以下不下来. 我为什么要手贱升级,明明18年版的也可以用的o(╥﹏╥)o 解决 设置https库 国内的镜像基本都有https版本了(公司的就要公司自己配置了),设置一下 <!--阿里仓库--> <mirror>

  • Maven pom.xml 添加本地jar包依赖以及打包方法

    Maven项目打包时,如果遇到需要添加本地jar包依赖的时候,可以选择两种方法: 1. 安装到本地仓库 第一种方法比较常规,适用于需要添加的jar包也是由maven项目导出,含有pom文件的时候.只需要将jar包安装到本地maven仓库下,然后添加依赖即可. (1)安装到本地仓库,执行以下命令(其中的-Dfile/-DgroupId/-DartifactId/-Dversion项根据pom文件内容填写): mvn install:install-file -Dfile=xxxxx.jar -Dg

  • maven工程中jar包瘦身的五种方法

    java项目中常用maven工具来进行工程管理,但经常遇到的一个问题是生成的jar包越来越大,编译一次工程越来越慢.怎么有效地去除冗余依赖,给jar包进行瘦身,是一项必备技能.下面介绍在maven工程中jar包瘦身五大法: 一.将环境中已包含的依赖包的scope设置为provided pom中依赖的部分包可能在你程序运行环境中已经包含,此时应该将依赖包的scope设置为provided.如protobuf包如在环境中已包含,则应设置为: <dependency> <groupId>

  • Maven项目打Jar包并添加依赖步骤详解

    之前介绍了使用spring-boot-maven-plugin插件打jar包,会把所有的依赖文件都导入,然后变成了一个可执行的jar包.这样的不好的地方就是,我实际上并不需要把依赖的jar包也打入到生成的jar包里面去,仅仅需要把当前项目的代码打包.生成的jar包只要能引用到它所依赖的jar包,并且可以执行就好了. 那么一般情况下,打包时如何添加依赖呢? 使用maven-dependency-plugin插件 子项目中的pom.xml文件中,添加以下maven-dependency-plugin

  • 使用maven工具解决jar包冲突或重复加载的问题

    在使用maven开发项目的过程中,经常会遇到jar包重复加载或者jar包冲突的问题的,但是由于有些jar是由于maven的依赖加载自动加载进来的, 而不是开发者自己配置的,特别是当项目中pom中配置的jar包依赖本身很多时,开发者靠自己的经验,有时很难找出是哪个jar的加载导致加载了 多余的依赖jar,从而产生冲突. 今天刚好遇到一个借用eclipse中的maven插件解决jar包依赖冲突的问题,分享一下. 项目中出现的问题如下: Caused by: java.lang.NoClassDefF

  • Maven发布项目 (jar包) 到Nexus私服中的操作

    1 需求说明 开发完项目后, 将项目版本发布到Nexus私服中. 2 实现步骤 2.1 Maven服务的setting.xml文件 (1) 如果本机安装了Maven服务, 可在${MAVEN_HOME}/conf/setting.xml中指定私服相关的配置: <!-- 在servers标签下配置server, 包括: 私服的用户名和密码, 在deploy项目时需要用到 --> <server> <id>releases</id> <username&g

  • Maven生成及安装jar包到本地仓库的方法

    前言 本文将讲解如何通过Maven生成jar包并安装到本地仓库(包括将当前项目打包安装仓库到本地以及安装从外部获得的单独jar包),完成下面的操作需要安装Maven并了解一些基础的命令使用,想了解Maven的一些基础概念,可以查看我的这篇文章,此外本文就不自己从零构建一个Maven项目了,而是采用IDEA自带的模板来演示样例. 创建一个 Maven 项目 在正式讲解之前,我们先创建一个简单的Maven项目: 然后在src/main/java/目录下,创建一个util/Demo.java文件: 生

  • springboot maven 项目打包jar 最后名称自定义的教程

    maven 文件打包,输入 :package -Dmaven.test.skip=true 进行打包, 一般生成的jar 文件 名称是项目名+版本号这样的 如何在pom.xml 中加入finalname 属性,就可以获得稳定的jar 名称 <build> <finalName>pay</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId

  • 解决eclipse中maven引用不到已经存在maven中jar包的问题

    之前,用过maven管理项目的童鞋都知道本地会有一个${User_Home}.m2/repository仓库 是用来存放jar包的地方.但是,在eclipse中的maven仓库中 搜索不到本地仓库中的jar包. 原因是因为maven中的本地仓库的index索引没有更新,导致在eclipse的maven插件中搜索不到. 解决方案: 在eclipse中打开菜单 window-> show view –> other –> Maven -> maven repositories 打开之后

  • 如何把本地jar包导入maven并pom添加依赖

    开发过程中经常遇到需要用某些http://maven.apache.org/中没有的jar包,这个时候可以用maven命令自己添加 通常这些jar包可以从其官网下载下来,然后用maven明天添加此jar包到maven 本次用例:jodconverter-2.2.2.jar,apache-maven-3.5.0 1:将jar包下载到某位置,为了方便,下载到了D:\lgqProject\apache-maven-3.5.0\bin下 2:用maven命令安装 因为我没有建环境变量,所以直接在bin目

随机推荐