色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

Spring boot打包jar分離lib和resources方法實(shí)例

瀏覽:121日期:2023-09-05 13:35:38

為什么要配置、依賴文件分離:

1.在傳統(tǒng)jar包中,所有文件都打包到一個jar包中,jar非常臃腫,在進(jìn)行服務(wù)更新部署時非常不便,而且傳輸不穩(wěn)定時導(dǎo)致傳輸失敗。如果過實(shí)行文件分離、在依賴不改變的情況下,僅僅上傳更新后的 編譯文件是非常方便的。

如果要修改一些配置文件:properties、xml,靜態(tài)文件等可以直接在服務(wù)器上編輯。

那么怎么實(shí)行配置、依賴文件分離呢?

插件介紹

maven-jar-plugin 這個插件式專門用來打包用的,可以配置需要打包進(jìn)去的文件,程序的入口類等。 maven-resources-plugin 這個插件是用來拷貝資源文件的。 maven-maven-dependency-plugin 這個插件是用來拷貝依賴庫的。 maven-assembly-plugin 可以說包含了以上插件的功能,但是可以做到更精細(xì)的控制。 spring-boot-maven-plugin 這個不用說,springboot 項(xiàng)目最重要的插件,整個項(xiàng)目的打包處理過程還是要依附于它。

打包成可執(zhí)行jar,不僅僅局限SpringBoot項(xiàng)目(主入口函數(shù)存在)

maven-jar-plugin 插件打包jar

在pom文件中配置,但是這樣 依賴的jar并不會打進(jìn)來(后面會有解決方法),適用不需要依賴文件的項(xiàng)目。

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-jar-plugin</artifactId><version>2.3</version><configuration> <archive> <manifest> <!--是否添加依賴--> <addClasspath>true</addClasspath> <!--設(shè)置啟動類--> <mainClass>xxx.xxx.Main</mainClass> </manifest> </archive> <!--設(shè)置生成jar輸出位置--> <outputDirectory>${project.build.directory}</outputDirectory></configuration> </plugin>

maven-assembly-plugin 插件打包jar

<plugin><artifactId>maven-assembly-plugin</artifactId><configuration> <!--不添加AssemblyId--> <appendAssemblyId>false</appendAssemblyId> <descriptorRefs> <!--配置打包的時候一并打包依賴jar--> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <!--入口類--> <mainClass>xxx.xxx.Main</mainClass> </manifest> </archive></configuration><executions> <execution> <id>make-assembly</id> <!--綁定生命周期--> <phase>package</phase> <goals> <!--執(zhí)行assembly --> <goal>assembly</goal> </goals> </execution></executions> </plugin>

打包SpringBoot 項(xiàng)目

方案一、

<plugins> <!--打包jar--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration><archive> <manifest> <addClasspath>true</addClasspath> <!--MANIFEST.MF 中 Class-Path 加入前綴--> <classpathPrefix>lib/</classpathPrefix> <!--jar包不包含唯一版本標(biāo)識--> <useUniqueVersions>false</useUniqueVersions> <!--指定入口類--> <mainClass>xxx.xxx.Application</mainClass> </manifest> <manifestEntries> <!--MANIFEST.MF 中 Class-Path 加入資源文件目錄--> <Class-Path>/resources</Class-Path> </manifestEntries></archive><outputDirectory>${project.build.directory}/dis</outputDirectory> </configuration> </plugin> <!--拷貝依賴 copy-dependencies--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions><execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/dis/lib/ </outputDirectory> </configuration> </execution></executions> </plugin> <!--拷貝資源文件 copy-resources--> <plugin><artifactId>maven-resources-plugin</artifactId><executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <resources><resource> <directory>src/main/resources</directory></resource> </resources> <outputDirectory>${project.build.directory}/dis/resources</outputDirectory> </configuration> </execution></executions> </plugin> <!--spring boot repackage,依賴 maven-jar-plugin 打包的jar包 重新打包成 spring boot 的jar包--> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration> <layout>ZIP</layout> <!--使用外部配置文件,jar包里沒有資源文件--> <addResources>true</addResources></configuration><executions> <execution> <goals> <goal>repackage</goal> </goals> </execution></executions> </plugin> </plugins> </build>

方案二

這里依賴assembly.xml 描述文件

<plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <appendAssemblyId>false</appendAssemblyId> <descriptors><descriptor>assembly.xml</descriptor> </descriptors> <outputDirectory>${project.build.directory}/dist/</outputDirectory> </configuration> <executions> <execution><id>make-assembly</id><phase>package</phase><goals> <goal>single</goal></goals> </execution> </executions> </plugin> <!-- 打包成jar文件,并指定lib文件夾以及resources資源文件夾 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive><manifest> <mainClass>xxx.xxx.Application</mainClass> <!--依賴前綴--> <classpathPrefix>lib/</classpathPrefix> <addClasspath>true</addClasspath></manifest><manifestEntries> <Class-Path>resources/</Class-Path></manifestEntries> </archive> </configuration> </plugin></plugins>

assembly.xml

<assembly xmlns='http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd'> <id>distribution</id> <!--輸出格式 zip 最終結(jié)果生成zip --> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <!--設(shè)置需要輸出文件--> <fileSets> <fileSet> <directory>src/main/resources/</directory> <outputDirectory>/resources</outputDirectory> </fileSet> </fileSets> <dependencySets> <dependencySet> <!--依賴包的輸出目錄--> <outputDirectory>/lib</outputDirectory> <scope>runtime</scope> <excludes><exclude>${project.groupId}:${project.artifactId}</exclude> </excludes> </dependencySet> <dependencySet> <!--jar包的輸出目錄--> <outputDirectory>/</outputDirectory> <includes><include>${project.groupId}:${project.artifactId}</include> </includes> </dependencySet> </dependencySets></assembly>

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 日韩一级大片 | 国内成人免费视频 | 中日毛片 | 国产三级香港三韩国三级 | 国产成人a毛片在线 | 一级大黄美女免费播放 | 黄男人和女人色一级 | 成人a级高清视频在线观看 成人a毛片 | 亚洲狠狠ady亚洲精品大秀 | 国产成人91一区二区三区 | 欧美日韩亚洲综合另类ac | 国产呦精品系列在线 | 国产高清精品自在久久 | 欧美日韩精品国产一区二区 | 免费观看a级毛片在线播放 免费观看a级网站 | 国产成人精品亚洲2020 | 91麻精品国产91久久久久 | 久久国产一片免费观看 | 欧美激情免费a视频 | 亚州一区二区 | 欧美日韩在线播一区二区三区 | 欧美aaaaaabbbbb | 国产一级一片 | 狠狠色婷婷丁香综合久久韩国 | 国内精品一区二区 | 国产成人精品免费视频大全五级 | 996热这里有精品青青草原 | 国模在线播放 | 欧美成人一区二区三区 | 72种姿势欧美久久久久大黄蕉 | 怡红院免费的全部视频国产a | 高清欧美不卡一区二区三区 | 国产亚洲精品久久久久久久 | 真正国产乱子伦高清对白 | 午夜欧美成人久久久久久 | 午夜一区二区福利视频在线 | 日韩免费高清一级毛片在线 | 成人自拍小视频 | 久草免费在线播放 | 怡红院在线观看在线视频 | 偷拍自拍日韩 |