maven?插件?assembly?打tar.gz包的詳細(xì)過程
maven 插件 assembly 打tar.gz包
GitHub: link. 歡迎star
注意:本篇博客風(fēng)格(不多比比就是擼代碼!!!)
一、項(xiàng)目目錄

二、pom文件
1. profiles
<profiles>
<profile>
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
<profile>
<id>prod</id>
<properties>
<profiles.active>prod</profiles.active>
</properties>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
</profile>
</profiles>2. plugins
<plugins>
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>2.5.3</version>
</plugin>
<!-- 配置assembly.xml文件路徑 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptors>
<descriptor>src/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<layout>ZIP</layout>
<includes>
<!-- 項(xiàng)目啟動(dòng)jar包中排除依賴包 -->
<include>
<groupId>non-exists</groupId>
<artifactId>non-exists</artifactId>
</include>
</includes>
</configuration>
</plugin>
<!-- 自定義maven jar打包內(nèi)容 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<!-- 項(xiàng)目啟動(dòng)類 -->
<mainClass>com.andon.springbootutil.SpringBootUtilApplication</mainClass>
<classpathPrefix>../lib</classpathPrefix>
<addClasspath>true</addClasspath>
</manifest>
</archive>
</configuration>
</plugin>
<!-- 復(fù)制項(xiàng)目的依賴包到指定目錄 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<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>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
</plugin>
</plugins>3. resource
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application.yml</include>
<include>application-${profiles.active}.yml</include>
<include>mapperxml/*.xml</include>
<include>*.xml</include>
<include>*.properties</include>
<include>db/migration/*.sql</include>
<include>banner.txt</include>
</includes>
</resource>
</resources>
<finalName>springboot-util</finalName>三、assembly.xml
<?xml version="1.0" encoding="UTF-8" ?>
<assembly>
<id>release</id>
<!-- 打包類型 -->
<formats>
<format>tar.gz</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<fileSets>
<!-- 輸出bin目錄所有文件到根目錄 -->
<fileSet>
<directory>${basedir}/src/bin</directory>
<outputDirectory>${file.separator}</outputDirectory>
<fileMode>0755</fileMode>
<includes>
<include>**.sh</include>
<include>**.bat</include>
</includes>
</fileSet>
<!-- 輸出配置文件到config目錄 -->
<fileSet>
<directory>${basedir}/target/classes</directory>
<outputDirectory>config</outputDirectory>
<fileMode>0644</fileMode>
<includes>
<include>application.yml</include>
<include>application-${profiles.active}.yml</include>
<include>mapperxml/*.xml</include>
<include>db/migration/*.sql</include>
<include>*.xml</include>
<include>*.properties</include>
<include>banner.txt</include>
</includes>
</fileSet>
<!-- 第三方依賴打包到lib目錄 -->
<fileSet>
<directory>${basedir}/target/lib</directory>
<outputDirectory>lib</outputDirectory>
<fileMode>0755</fileMode>
</fileSet>
<!-- 將項(xiàng)目啟動(dòng)jar打包到boot目錄 -->
<fileSet>
<directory>${basedir}/target</directory>
<outputDirectory>boot</outputDirectory>
<fileMode>0755</fileMode>
<includes>
<include>${project.build.finalName}.jar</include>
</includes>
</fileSet>
<!-- 打包根目錄下的文件 -->
<fileSet>
<directory>${basedir}</directory>
<includes>
<include>**.md</include>
<include>**.conf</include>
<include>**.zip</include>
<include>**.zip</include>
</includes>
</fileSet>
<fileSet>
<directory>${basedir}/nginxconfig</directory>
<outputDirectory>nginxconfig</outputDirectory>
<includes>
<include>*</include>
</includes>
</fileSet>
<fileSet>
<directory>${basedir}/nginx</directory>
<outputDirectory>nginx</outputDirectory>
<includes>
<include>*</include>
</includes>
</fileSet>
<fileSet>
<directory>${basedir}/nginx/ssl</directory>
<outputDirectory>nginx${file.separator}ssl</outputDirectory>
<includes>
<include>*</include>
</includes>
</fileSet>
</fileSets>
</assembly>四、application.yml
server:
port: 8866
servlet:
context-path: /springboot-util
forward-headers-strategy: native
spring:
profiles:
active: @profiles.active@五、啟動(dòng)腳本
1. start.sh
#!/bin/sh
source /etc/profile
APPLICATION="springboot-util"
APPLICATION_JAR="${APPLICATION}.jar"
JAVA_OPT="-server -XX:NewRatio=2 -XX:SurvivorRatio=8 -Xms8g -Xmx16g"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"
JVM_REMOTE_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=7766"
nohup java ${JAVA_OPT} ${JVM_REMOTE_OPTS} -jar ./boot/${APPLICATION_JAR} > nohup.out 2>&1 &2. stop.sh
#!/bin/sh
APPLICATION="springboot-util"
APPLICATION_JAR="${APPLICATION}.jar"
PID=$(ps -ef | grep "${APPLICATION_JAR}" | grep -v grep | awk '{print $2}')
kill -9 ${PID}六、執(zhí)行 mvn 打包命令
mvn clean package -DskipTests=true -P dev



七、tar.gz 包上傳服務(wù)器并解壓

八、執(zhí)行 start.sh 啟動(dòng)腳本

九、訪問 swagger

GitHub: link. 歡迎star
到此這篇關(guān)于maven 插件 assembly 打tar.gz包的文章就介紹到這了,更多相關(guān)maven assembly 打tar.gz包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
tk.mybatis如何擴(kuò)展自己的通用mapper
這篇文章主要介紹了tk.mybatis如何擴(kuò)展自己的通用mapper操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java中繼承thread類與實(shí)現(xiàn)Runnable接口的比較
這篇文章主要介紹了Java中繼承thread類與實(shí)現(xiàn)Runnable接口的比較的相關(guān)資料,需要的朋友可以參考下2017-06-06
MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實(shí)體字段不一致問題處理方法
這篇文章主要介紹了MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實(shí)體字段不一致問題處理方法,需要的朋友可以參考下2017-05-05
Unicode、UTF-8 和 ISO8859-1區(qū)別解析
這篇文章主要介紹了Unicode、UTF-8 和 ISO8859-1到底有什么區(qū)別,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-01-01
maven中央倉庫修改驗(yàn)證方式導(dǎo)致用戶名密碼失效的解決方式
這篇文章主要介紹了maven中央倉庫修改驗(yàn)證方式導(dǎo)致用戶名密碼失效的解決方式,文中通過圖文結(jié)合的方式講解的非常詳細(xì),對大家解決問題有一定的幫助2024-11-11
SpringCloud使用Feign實(shí)現(xiàn)動(dòng)態(tài)路由操作
這篇文章主要介紹了SpringCloud使用Feign實(shí)現(xiàn)動(dòng)態(tài)路由操作,文章圍繞主題展開詳細(xì)的內(nèi)容介紹具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06

