Maven对Springboot项目配置文件、依赖分离打包

2022-11-21 13:55:45

Springboot项目配置文件、依赖分离打包(一)

使用maven-assembly-plugin进行配置分离

assembly.xml配置文件

<?xml version="1.0" encoding="UTF-8"?><assembly><!-- 可自定义,这里指定的是项目环境 --><!-- xxx.tar.gz  --><id>${name}</id><!-- 打包的类型,如果有N个,将会打N个类型的包 --><formats><format>tar.gz</format><format>zip</format></formats><includeBaseDirectory>true</includeBaseDirectory><fileSets><!-- 配置文件打包-打包至config目录下 --><fileSet><directory>src/main/resources/</directory><outputDirectory>config</outputDirectory><fileMode>0644</fileMode><includes><include>application.yml</include><include>*.xml</include><include>*.properties</include></includes></fileSet><!-- 启动文件目录 --><fileSet><directory>${basedir}/src/bin</directory><outputDirectory>bin</outputDirectory><fileMode>0755</fileMode><includes><include>**.sh</include><include>**.bat</include></includes></fileSet></fileSets><dependencySets><dependencySet><!-- 依赖库 --><outputDirectory>lib</outputDirectory><scope>runtime</scope><fileMode>0755</fileMode><excludes><exclude>${project.groupId}:${project.artifactId}</exclude></excludes></dependencySet><dependencySet><outputDirectory>boot</outputDirectory><fileMode>0755</fileMode><includes><include>${project.groupId}:${project.artifactId}</include></includes></dependencySet></dependencySets></assembly>

Pom.xml文件配置

pom文件中build属性的配置

<build><!-- 打包后的启动jar名称 --><finalName>message</finalName><plugins><!-- 用于排除jar中依赖包 --><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><layout>ZIP</layout><includes><!-- 项目启动jar包中排除依赖包 --><include><groupId>non-exists</groupId><artifactId>non-exists</artifactId></include></includes></configuration></plugin><!-- 将依赖cp到lib目录下 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>3.1.0</version><executions><execution><phase>prepare-package</phase><goals><goal>copy-dependencies</goal></goals><configuration><outputDirectory>target/lib</outputDirectory><overWriteReleases>false</overWriteReleases><overWriteSnapshots>false</overWriteSnapshots><overWriteIfNewer>true</overWriteIfNewer><includeScope>compile</includeScope></configuration></execution></executions></plugin><!-- maven编译 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><!-- 不同版本需要制定具体的版本进行编译 --><source>${java.version}</source><target>${java.version}</target></configuration></plugin><!-- 打包时跳过测试 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version><configuration><skipTests>true</skipTests></configuration></plugin><!-- 将项目中代码文件打成jar包 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>3.1.0</version><configuration><excludes><!-- 打包后的jar包中不包括配置文件 --><!-- 通常是指classpath下目录下的文件,这样可以避免编写时的找不到相应文件 --><exclude>*.xml</exclude><exclude>*.properties</exclude><exclude>*.yml</exclude></excludes><archive><manifest><!-- 项目启动类 --><mainClass>xx.xxx.Application</mainClass><!-- 依赖的jar的目录前缀 --><classpathPrefix>../lib/</classpathPrefix><addClasspath>true</addClasspath></manifest><!-- 将config目录加入classpath目录 --><manifestEntries><Class-Path>../config/</Class-Path></manifestEntries></archive></configuration></plugin><!-- 打包插件 --><plugin><artifactId>maven-assembly-plugin</artifactId><version>3.1.0</version><configuration><descriptors><descriptor>src/main/assembly/assembly.xml</descriptor></descriptors></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>

运行

1.直接运行 java -jar xxxx.jar即可

2.编写shell/bash脚本

在bin目录下编写脚本文件如下:

shell

#! /bin/sh

HOME='/opt/xxx/boot'
JAR_HOME='xxx.jar'cd$HOMEnohup java -jar$JAR_HOME

bash

@echo off
rem======================================================================
rem windows startup script
rem
rem======================================================================
rem startup jar

java -jar../boot/xxx.jar

pause

项目目录如下

1565327770486

  • 作者:HiCodd
  • 原文链接:https://blog.csdn.net/HookJony/article/details/98992510
    更新时间:2022-11-21 13:55:45