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)目啟動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)目啟動類 --> <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)目啟動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@
五、啟動腳本
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 啟動腳本
九、訪問 swagger
GitHub: link. 歡迎star
到此這篇關(guān)于maven 插件 assembly 打tar.gz包的文章就介紹到這了,更多相關(guān)maven assembly 打tar.gz包內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
IntelliJ?IDEA?2021.3?正式發(fā)布之支持遠(yuǎn)程開發(fā)、IDE故障排查等多項(xiàng)優(yōu)化改進(jìn)
IntelliJ?IDEA?2021.3?正式發(fā)布:支持遠(yuǎn)程開發(fā)、IDE故障排查等多項(xiàng)優(yōu)化改進(jìn)問題,在這個(gè)版本中的遠(yuǎn)程開發(fā)還不是一個(gè)正式版本,而是BETA版,但通過這個(gè)BETA版本,也可以體驗(yàn)IDEA“遠(yuǎn)程開發(fā)”給我們帶來的全新體驗(yàn)2021-12-12java實(shí)現(xiàn)pgsql自動更新創(chuàng)建時(shí)間與更新時(shí)間的兩種方式小結(jié)
本文主要介紹了java實(shí)現(xiàn)pgsql自動更新創(chuàng)建時(shí)間與更新時(shí)間的兩種方式小結(jié),主要包括通過數(shù)據(jù)庫自身實(shí)現(xiàn)以及通過mybatisplus的TableField注解添加,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01SpringCloud項(xiàng)目中Feign組件添加請求頭所遇到的坑及解決
這篇文章主要介紹了SpringCloud項(xiàng)目中Feign組件添加請求頭所遇到的坑及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04java兩個(gè)integer數(shù)據(jù)判斷相等用==還是equals
本文主要介紹了java兩個(gè)integer數(shù)據(jù)判斷相等用==還是equals,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12Spring中propagation的7種事務(wù)配置及說明
這篇文章主要介紹了Spring中propagation的7種事務(wù)配置及說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06