Maven打包jar与lib分开

前言:最近使用Springboot项目比较多,Springboot项目目前一般都是使用maven进行打包。maven的默认打包插件用的是spring-boot-maven-plugin,这个插件会把项目中的代码和相关依赖一起打包成一个jar包,我们拿到这个jar包就可以去生产环境运行。但是当我们每次进行项目更新的时候,这个jar都特别大,因为包含了所有的依赖。因此我们需要把打包模式修改成,所有的lib文件都放在生成目录的lib/文件夹下,生成的项目jar包里面只包含项目代码部分。

  1. 第一个插件是指定jar包的启动类,还有lib文件目录,代码如下:

    <plugin>
    	  <groupId>org.apache.maven.plugins</groupId>
    	  <artifactId>maven-jar-plugin</artifactId>
    	  <configuration>
    	      <archive>
    	          <manifest>
    	              <addClasspath>true</addClasspath>
    	              <classpathPrefix>lib/</classpathPrefix>
    	                  <mainClass>com.ali.cms.GatewayApplication</mainClass>
    	          </manifest>
    	      </archive>
    	  </configuration>
      </plugin>
    

    上面代码中classpathPrefix代表了lib文件目录,mainClass是jar包的启动类

  2. 第二个插件是maven-dependency-plugin,他的功能是把所有的依赖文件都复制到lib文件夹下,代码如下:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
            <execution>
                <id>copy-dependencies</id>
                <phase>prepare-package</phase>
                <goals>
                    <goal>copy-dependencies</goal>
                </goals>
                <configuration>
                    <outputDirectory>${project.build.directory}/lib</outputDirectory>
                    <overWriteReleases>false</overWriteReleases>
                    <overWriteSnapshots>false</overWriteSnapshots>
                    <overWriteIfNewer>true</overWriteIfNewer>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    outputDirectory字段就是代表依赖jar包复制的目录

  3. 打包之后文件就如下图:
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值