1. 程式人生 > >Spring Boot 分離資原始檔打包

Spring Boot 分離資原始檔打包

Spring Boot專案預設的會打包成單一的jar檔案,但是有時候我們並不想讓配置檔案、依賴包都跟可執行檔案打包到一起。這時候可以在pom.xml檔案中進行配置,從而使資原始檔、依賴包和可執行檔案分離。pom.xml配置如下:

    <build>
        <plugins>
            <!--**********分離資原始檔及依賴包打包配置*************-->
            <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>target/lib</outputDirectory> <excludeTransitive>false</excludeTransitive
>
<stripVersion>false</stripVersion> <includeScope>runtime</includeScope> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <excludes> <exclude>**/*.properties</exclude> <exclude>**/*.xml</exclude> <exclude>static/**</exclude> <exclude>templates/**</exclude> </excludes> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <layout>ZIP</layout> <includes> <include> <groupId>non-exists</groupId> <artifactId>non-exists</artifactId> </include> </includes> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> <configuration> <classifier>classes</classifier> <attach>false</attach> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <property name="dist">target/build</property> <property name="res">target/build/resources</property> <property name="dist-tmp">target/build/tmp</property> <property name="app-name">${project.artifactId}-${project.version}</property> <property name="real-app-name">${project.artifactId}</property> <delete dir="${dist}" /> <mkdir dir="${dist}" /> <mkdir dir="${dist-tmp}" /> <mkdir dir="${res}" /> <copy file="target/${app-name}.jar" tofile="${dist-tmp}/${app-name}.jar" /> <unzip src="${dist-tmp}/${app-name}.jar" dest="${dist-tmp}" /> <delete file="${dist-tmp}/${app-name}.jar" /> <move file="target/${app-name}-classes.jar" tofile="${dist}/${real-app-name}.jar"/> <move todir="${dist}/lib"> <fileset dir="target/lib" /> </move> <delete dir="${dist-tmp}" /> <copy todir="${res}"> <fileset dir="target/classes"> <include name="**/static/**" /> <include name="**/templates/**" /> </fileset> </copy> <copy todir="${res}"> <fileset dir="target/classes"> <include name="**/*.properties" /> <include name="**/*.xml" /> <include name="**/*.yml" /> </fileset> </copy> </target> </configuration> </execution> </executions> </plugin> </plugins> </build>

maven打包完成後,可以在target目錄下看到一個build目錄,進入該目錄的結構如圖:
這裡寫圖片描述
test.jar檔案就是可執行檔案,資原始檔和配置檔案都在resources目錄下,依賴的jar包都在lib目錄下。
執行方式:java -jar -Dloader.path=.,resources,lib test.jar

注意:如果在windows10系統下執行,要用cmd,不要用PowerShell,否則可能會報Error: Unable to access jarfile .path=.,resources,lib異常。

相關推薦

Spring Boot 分離原始檔打包

Spring Boot專案預設的會打包成單一的jar檔案,但是有時候我們並不想讓配置檔案、依賴包都跟可執行檔案打包到一起。這時候可以在pom.xml檔案中進行配置,從而使資原始檔、依賴包和可執行檔案分離。pom.xml配置如下: <build

Spring Boot (四):打包部署

mage word lean 相對 () pst url app ble springboot 打包與部署 一、jar 包 pom文件中packaging: 1、編譯 進入項目目錄,使用如下命令: //命令打包(-Dmaven.test.skip=true 跳過測試) m

Spring Boot:項目打包成war並發布到Tomcat上運行

pri 嵌入式 scope 相同 pac div height clas apps 一、修改pom文件 1. 因為SpringBoot中嵌入的有Tomcat,因此要移除嵌入式的Tomcat插件 1 <dependency> 2 &

spring 引入外部原始檔

開發過程中,經常使用到*.properties資原始檔,其實可以把它們放在專案之外的某個地方,方便統一管理,尤其是很多專案的時候。 貼程式碼: springmvc-config.xml <!--1、在spring配置檔案中加入下面程式碼--> <context:

spring MVC靜態原始檔異常

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Cannot locate BeanDefinitionParser for element [def

spring boot專案搭建 釋出 打包彎路全紀錄

這幾天在學習spring boot,因為當前手頭沒有需求,就嘗試將之前一個小工程轉換為spring boot專案。同時由於目前手頭的IDE實在太老(Eclipse indigo),很多步驟都是手動完成的,走了不少彎路。記錄如下,也方便以後查閱: 一、Eclipse Ind

Spring Boot 的項目打包成的 JAR 包,制作成 docker 鏡像並運行

entry 相對 其中 打包成 裏的 訪問 註意 直接 說明 上一篇:Docker學習(三)docker容器操作 首先把本地的項目打包好,我這裏直接把已經打包好的springboot-mybatis-0.0.1-SNAPSHOT.jar包直接上傳到linuxmydemo目錄

spring boot 新增第三方jar 打包遇到的問題,

在用spring boot 做專案開發的時候,都是直接從mavn倉庫中拉取jar值不會遇到現有問題的。最近在做專案的時候由於用到了第三的jar包時候,用spring boot打包遇到的問題。開發工具idea1: 將專案打包成 可執行的jar檔案    按照以前整合專案的套路,

Spring Boot【7--測試打包部署】

文章轉載自:純潔的微笑 原po主有很多筆記寫的很詳細大家可以移步瀏覽  有很多網友會時不時的問我,spring boot專案如何測試,如何部署,在生產中有什麼好的部署方案嗎?這篇文章就來介紹一下spring boot 如何開發、除錯、打包到最後的投產上線。 開發階段

Sping boot 靜態原始檔的路徑配置

在web開發中,靜態資源的訪問是必不可少的,如:圖片、js、css 等資源的訪問。 spring Boot 對靜態資源訪問提供了很好的支援,基本使用預設配置就能滿足開發需求。 一、預設靜態資源對映 Spring Boot 對靜態資源對映提供了預設配置 S

maven在打war包時將原始檔打包到classes目錄下

配置pom.xml在build裡面 <!--將類檔案打成jar包--> <archiveClasses>true&

spring 配置國際化原始檔的兩種方式

第一種將資原始檔放在原始碼裡面: 那麼配置檔案資訊如下: <!-- 讀取國際化資原始檔 == 資原始檔在包裡面,路徑寫全包名--> <bean id="messageSource" class="org.springframework.conte

原始檔打包到Web自定義控制元件中應用

ASP.NET 2.0提供的Web Resources管理模型,很好的解決了image、css、script等外部資源的管理問題。解決方案如下: 1.設定你需要打包的檔案的Build Action property為Embedded Resource. 2、註冊資原始檔:(1)一般情況下,在AssemblyI

Spring Boot項目Maven打包報錯(repackage failed: Unable to find main class)

class art 配置 報錯 tin log logs 解決 文件添加 解決方案: setting.xml文件添加如下配置: <plugin> <groupId>org.springframework.boot</group

Spring Boot原始檔屬性配置

一 新增相關依賴 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-proce

Spring Boot 打包分離依賴jar,配置檔案

maven-jar-plugin,負責將應用程式打包成可執行的jar檔案  maven-assembly-plugin,負責將整個專案按照自定義的目錄結構打成最終的壓縮包,方便實際部署  需求1,將依賴的jar提取到可執行的jar檔案之外,我們使用maven-jar-p

解決 IntelliJ IDEA 無法熱載入 Spring Boot 模板檔案和靜態原始檔

快捷鍵Ctrl + Alt + S開啟設定面板,勾選Build project automatically選項: 快捷鍵Ctrl + Shift + A查詢registry命令: 在查詢到的registry命令通過滑鼠雙擊或敲回車鍵,在彈出的面板中搜索關鍵字automake,找到並勾選compiler.

Spring Boot 讀取靜態原始檔

一、需求場景有時候我們需要在專案中使用一些靜態資原始檔,比如城市資訊檔案 ueditorConfig.json,在專案啟動後讀取其中的資料並初始化寫進資料庫中。二、實現靜態資原始檔 ueditorCon

spring-boot 載入本地靜態原始檔路徑配置

1.spring boot預設載入檔案的路徑是 /META-INF/resources/ /resources/ /static/ /public/ 這些目錄下面, 當然我們也可以從spring boot原始碼也可以看到  Java程式碼   private stat

Spring boot 學習之旅--載入靜態原始檔

介面寫久了感覺Jquery忘光了,在網上蕩了一個帶頁面的專案,根據要求搭建好spring boot+thymeleaf配置,js 、css放到static資料夾下,啟動專案發現樣式不顯示,查閱資料boot專案是預設載入static下的靜態資源,在頁面'ctr'下也能進去,好鬱