您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Springboot基于assembly服務化實現打包的詳細教程,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
(1)首先我們編輯 assembly.xml 配置文件,在前文的基礎上新增第三方依賴設置(高亮部分),實現將第三方的 jar 包添加到壓縮包里的 lib 目錄:
<?xml version="1.0" encoding="UTF-8"?> <assembly> <!-- 必須寫,否則打包時會有 assembly ID must be present and non-empty 錯誤 這個名字最終會追加到打包的名字的末尾,如項目的名字為 hangge-test-0.0.1-SNAPSHOT, 則最終生成的包名為 hangge-test-0.0.1-SNAPSHOT-bin.tar.gz --> <id>bin</id> <!-- 打包的類型,如果有N個,將會打N個類型的包 --> <formats> <!-- <format>tar.gz</format>--> <format>zip</format> </formats> <includeBaseDirectory>true</includeBaseDirectory> <!--第三方依賴設置--> <dependencySets> <dependencySet> <!-- 不使用項目的artifact,第三方jar不要解壓,打包進zip文件的lib目錄 --> <useProjectArtifact>false</useProjectArtifact> <outputDirectory>lib</outputDirectory> <unpack>false</unpack> </dependencySet> </dependencySets> <!--文件設置--> <fileSets> <!-- 0755->即用戶具有讀/寫/執行權限,組用戶和其它用戶具有讀寫權限; 0644->即用戶具有讀寫權限,組用戶和其它用戶具有只讀權限; --> <!-- 將src/main/assembly/bin目錄下的所有文件輸出到打包后的bin目錄中 --> <fileSet> <directory>src/main/assembly/bin</directory> <outputDirectory>bin</outputDirectory> <fileMode>0755</fileMode> <!--如果是腳本,一定要改為unix.如果是在windows上面編碼,會出現dos編寫問題--> <lineEnding>unix</lineEnding> <filtered>true</filtered><!-- 是否進行屬性替換 --> </fileSet> <!-- 將src/main/assembly/config目錄下的所有文件輸出到打包后的config目錄中 --> <fileSet> <directory>src/main/assembly/config</directory> <outputDirectory>config</outputDirectory> <fileMode>0644</fileMode> </fileSet> <!-- 將src/main/resources下配置文件打包到config目錄 --> <fileSet> <directory>src/main/resources</directory> <outputDirectory>./config</outputDirectory> <includes> <include>**/*.xml</include> <include>**/*.properties</include> <include>**/*.yml</include> </includes> <filtered>true</filtered><!-- 是否進行屬性替換 --> </fileSet> <!-- 將項目啟動jar打包到lib目錄中 --> <fileSet> <directory>target</directory> <outputDirectory>./</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> <!-- 將項目說明文檔打包到docs目錄中 --> <!-- <fileSet> <directory>.</directory> <outputDirectory>./docs</outputDirectory> <includes> <include>*.md</include> </includes> <fileMode>0644</fileMode> </fileSet>--> <fileSet> <directory>docs</directory> <outputDirectory>./docs</outputDirectory> <fileMode>0644</fileMode> </fileSet> <fileSet> <directory>src/main/assembly/docs</directory> <outputDirectory>./docs</outputDirectory> <fileMode>0644</fileMode> </fileSet> </fileSets> </assembly>
(2)接著編輯項目的 pom.xml 文件,先前使用的是 spring-boot-maven-plugin 來打包,這個插件會將項目所有的依賴打入項目 jar 包里面。我們將其替換為 maven-jar-plugin,并進行相關設置
<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包的最終位置 --> <!-- 因為我們將第三方jar和本項目jar放在同一個目錄下,這里就使用./ --> <classpathPrefix>./lib</classpathPrefix> <!-- 項目啟動類 --> <mainClass>com.yuehang.disneyland.DisneylandApplication</mainClass> </manifest> </archive> </configuration> </plugin> <plugin> <!--主要使用的是maven提供的assembly插件完成--> <artifactId>maven-assembly-plugin</artifactId> <version>3.1.1</version> <configuration> <descriptors> <!--具體的配置文件--> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <!--綁定到maven操作類型上--> <phase>package</phase> <!--運行一次--> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
然后打包出來的結構
運行就ok了
關于Springboot基于assembly服務化實現打包的詳細教程就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。