欢迎来到代码驿站!

JAVA代码

当前位置:首页 > 软件编程 > JAVA代码

Springboot基于maven打包分离lib及resource

时间:2021-09-04 09:49:25|栏目:JAVA代码|点击:

之前在部署Spring Boot项目时,经常因为只修改了一小处代码、或者只更新了某个jar包,但是却需要将整个项目重新打包、上传、部署,整个包一般都会达到40-60M,每次都重复这个操作真的很耗费时间,因此就想是否能够将依赖lib与项目代码分离出来,每次部署只需要发布代码即可。

项目发版,为了应对更新多变的依赖jar包,实现增量或替换依赖jar包,越来越多的企业实现源代码和依赖jar包和依赖配置分离,更好的应对复杂多变的现场和生产环境,使用maven打包配置如下:

<build>
<plugins>
 <!-- 指定启动类,将依赖打成外部jar包 -->
 <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <configuration>
   <archive>
    <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件 -->
    <addMavenDescriptor>false</addMavenDescriptor>
    <manifest>
     <!-- 是否要把第三方jar加入到类构建路径 -->
     <addClasspath>true</addClasspath>
     <!-- 外部依赖jar包的最终位置 -->
     <classpathPrefix>lib/</classpathPrefix>
     <!-- 项目启动类 -->
     <mainClass>com.mozi.mq_monitor.MqMonitorApplication</mainClass>
    </manifest>
   </archive>
  </configuration>
 </plugin>
 <!--拷贝依赖到jar外面的lib目录-->
 <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <executions>
   <execution>
    <id>copy-lib</id>
    <phase>package</phase>
    <goals>
     <goal>copy-dependencies</goal>
    </goals>
    <configuration>
     <outputDirectory>target/lib</outputDirectory>
     <excludeTransitive>false</excludeTransitive>
     <stripVersion>false</stripVersion>
     <includeScope>compile</includeScope>
    </configuration>
   </execution>
  </executions>
 </plugin>
 <!--指定配置文件,将resources打成外部resource-->
 <plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-jar-plugin</artifactId>
  <configuration>
   <archive>
    <!-- 指定配置文件目录,这样jar运行时会去找到同目录下的resources文件夹下查找 -->
    <manifestEntries>
     <Class-Path>resources/</Class-Path>
    </manifestEntries>
   </archive>
   <!-- 打包时忽略的文件(也就是不打进jar包里的文件) -->
   <excludes>
    <exclude>*.yml</exclude>
    <exclude>*.xml</exclude>
    <exclude>mqConfig/*.xml</exclude>
   </excludes>
  </configuration>
 </plugin>
 <!-- 拷贝资源文件 外面的resource目录-->
 <plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <executions>
   <execution>
    <id>copy-dependencies</id>
    <phase>package</phase>
    <goals>
     <goal>copy-resources</goal>
    </goals>
    <configuration>
     <!-- 资源文件输出目录 -->
     <outputDirectory>${project.build.directory}/resources</outputDirectory>
     <resources>
      <resource>
       <directory>src/main/resources</directory>
      </resource>
     </resources>
    </configuration>
   </execution>
  </executions>
 </plugin>
</plugins>
</build>

上一篇:Java泛型的使用限制实例分析

栏    目:JAVA代码

下一篇:java web开发中大量数据导出Excel超时(504)问题解决

本文标题:Springboot基于maven打包分离lib及resource

本文地址:http://www.codeinn.net/misctech/172506.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有