文档章节

Springboot 打包 外部jar system

吹比龙
 吹比龙
发布于 2017/07/24 10:26
字数 632
阅读 125
收藏 0

参考:http://www.cnblogs.com/liuchuanfeng/p/6886045.html

               http://www.cnblogs.com/xiaosiyuan/p/6894766.html

一、Maven添加本地Jar包

我们有时候项目依赖外部的jar,我们使用Eclipse开发的时候我们直接通过build path添加jar就可以,但是使用mvn 打包的时候就会缺少这个包。

1. 使用system scope

我们直接引入rabbitmq-client.jar。这个方式比较灵活,到新的服务器上,无需做额外的操作。

<dependency>  
        <groupId>rabbitmq.client</groupId>   
        <artifactId>rabbitmq.client</artifactId>   
        <version>3.0</version>   
        <scope>system</scope>   
        <systemPath>${basedir}/src/main/WEB-INF/lib/rabbitmq-client.jar</systemPath>   
</dependency>  
  • groupId和artifactId以及version都是可以随便填写的 ,scope必须填写为system,而systemPath我们现在我们jar包的目录地址就可以了
  • ${basedir}就是项目根目录

2. 将jar包安装到本地repository中

这个需要在新机器上执行mvn install:install-file命令。

  1. mvn install:install-file  
  2. -Dfile= jar文件所存放的地址     
  3. -DgroupId= jar文件所属的group:包名   
  4. -DartifactId=  jar的项目名 名称,一般就是去掉后缀的文件名     
  5. -Dversion=版本号  
  6. -Dpackaging=jar:此包的打包形式,就是jar  
  7. -DgeneratePom=true  

例如执行命令:
mvn install:install-file -Dfile=D:\JAR_LIB\rabbitmq-client.jar -DgroupId=com.rabbitmq -DartifactId=client -Dversion=3.5.0 -Dpackaging=jar  -DgeneratePom=true -DcreateChecksum=true

在项目中引用:

<dependency>  
    <groupId>com.rabbitmq</groupId>  
    <artifactId>client</artifactId>  
    <version>3.5.0</version>  
</dependency>  

二、Eclipse开发没问题但是SpringBoot打包,打不进去

通过方式一

通过这种方式引入依赖后,在编码的时候没有问题,但是用mvn clean package打成jar包后运行就是报错,正式找不到这些jar包中的相关类。把jar包解压后在BOOT-INF/lib里面也确实没有发现用上述方式引入的jar包,看来是没有把src/lib目录里面的jar打进去,后来通过查找也终于找到方法了,修改pom文件,在build标签下增加如下配置:

<resources>
      <resource>
        <directory>src/lib</directory>
        <targetPath>BOOT-INF/lib/</targetPath>
        <includes>
          <include>**/*.jar</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <targetPath>BOOT-INF/classes/</targetPath>
      </resource>
    </resources>

目的就是把src/lib下的jar打到BOOT-INF/lib下,但是必须要增加第二个resource,不然src/main/resources下的配置文件又打不进jar包了。

如果要打成war包,则pom文件需要这样改:

<!--设置maven-war-plugins插件,否则外部依赖无法打进war包-->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <webResources>
            <resource>
              <directory>lib</directory>
              <targetPath>WEB-INF/lib/</targetPath>
              <includes>
                <include>**/*.jar</include>
              </includes>
            </resource>
          </webResources>
        </configuration>
      </plugin>

通过方式二

这种方式不会有以上问题,但是却要每台电脑都要运行命令,也是头疼。

© 著作权归作者所有

共有 人打赏支持
吹比龙
粉丝 5
博文 121
码字总数 35785
作品 0
合肥
程序员
私信 提问
补习系列-springboot-使用assembly进行项目打包

目录 springboot-maven插件 1. 项目打包Jar 2. 项目完整构建 3. 本地包依赖 参考文档 springboot-maven插件 springboot-maven插件 repackage目标声明 1. 项目打包Jar pom定义 关于内置变量 ...

美码师
07/07
0
0
上传部署SpringBoot项目(Maven)到服务器

现在使用SpringBoot的架构的很显然是越来越受人们的欢迎 ,关于如何搭建SpringBoot项目我在前面也有说到.但是也有很多人在使用了SpringBoot后发现打包上传到服务器上出现了很多问题.为什么不能...

coderzs
2017/11/29
0
0
springboot打成jar包后配置外部资源映射成静态资源

很多的项目都要上传图片那些,然后通过打包jar包或者war包发布到服务器上,我们不可能把上传图片的文件夹放在jar包或者war包里面,那样会越来越大。所以有了下面的配置,其他框架都好说可以把...

duangecho
05/09
0
0
springboot打包与配置文件外置

目标: 1.将普通的MAVEN JAVA工程打包成SpringBoot可运行的jar包 2.将application.yml和log4j2.xml 1.打包 SpringBoot项目打包要求将依赖的jar全部打进去,因为SpringBoot的自动配置需要用到...

特拉仔
07/24
0
0
补习系列-springboot项目基础搭建课

目录 前言 一、基础结构 二、添加代码 三、应用配置 四、日志配置 五、打包部署 小结 前言 springboot 最近火的不行,目前几乎已经是 spring 家族最耀眼的项目了。抛开微服务、技术社区这些推...

美码师
07/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

/etc/profile和/etc/profile.d/的区别

/etc/profile 是文件, /etc/profile.d/ 是目录,用在设置环境变量方面,/etc/profile 文件和 /etc/profile.d/ 目录实现效果是一样的,可根据自己对环境变量配置的需求场景,选择一种最好的方...

calmsnow
3分钟前
0
0
支付系统设计

概述 支付系统是连接消费者、商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付金额等),金额对账等功能,根据不同公司对于支付业务...

小致dad
5分钟前
0
0
解决Docker Image镜像无法删除问题的方法

前言 Docker是Docker.Inc公司开源的一个基于轻量级虚拟化技术的容器引擎项目,整个项目基于Go语言开发,并遵从Apache 2.0协议。通过分层镜像标准化和内核虚拟化技术,Docker使得应用开发者和运...

临江仙卜算子
8分钟前
0
0
centos 7 redis_install.sh

#!/bin/bashprintf "============开始安装redis\n"printf "============输入redis下载url,按enter默认下载5.0.3版本\n"download_url='';while truedoread download_url...

偶遇一只小仙女
12分钟前
0
0
分布式消息通信ActiveMQ原理-消费消息策略-笔记

消费端消费消息的原理 我们通过上一节课的讲解,知道有两种方法可以接收消息, 一种是使用同步阻塞的MessageConsumer#receive方法。 另一种是使用消息监听器MessageListener。 这里需要注意的...

Java搬砖工程师
14分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部