springboot maven 依賴和配置文件分離打包

為什么要分離打包

  1. 在往服務器上傳時可以節(jié)省時間,同時也可以直接修改配置文件

如果不分離打包,一個項目jar包一般在大幾十M,上傳時比較費勁
分離打包,可以將依賴jar和配置文件打包到不同文件夾下,項目jar中不包含依賴jar,jar包大小會變得很小,只包含源碼。

pom內容


<resources>
<!-- 資源過濾-->
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
        <includes>
          <include>mapper/**</include>
          <include>application.yml</include>
          <include>application-dev.yml</include>
          <include>bootstrap.yml</include>
        </includes>
      </resource>
    </resources>
    <plugins>
      <!-- 分離打包開始 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <skipTests>true</skipTests>
        </configuration>
      </plugin>
      <!-- maven打包成jar的插件 -->
      <!-- 打包jar文件時,配置manifest文件,加入lib包的jar依賴 -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <!-- 把target/classes/下的文件導入到jar內 -->
          <classesDirectory>target/classes/</classesDirectory>
          <finalName>${project.artifactId}-${project.version}</finalName>
          <archive>
            <manifest>
              <!-- 指定程序入口 -->
              <mainClass>com.asiainfo.cem.CemUserJourneyApplication</mainClass>
              <!-- 打包時 MANIFEST.MF文件不記錄的時間戳版本 -->
              <useUniqueVersions>false</useUniqueVersions>
              <addClasspath>true</addClasspath>
              <!-- 服務依賴的jar包放在lib目錄下 -->
              <classpathPrefix>lib/</classpathPrefix>
           <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
            </manifest>
            <manifestEntries>
              <!--MANIFEST.MF 中 Class-Path 加入資源文件目錄 -->
              <Class-Path>./resources/</Class-Path>
            </manifestEntries>
          </archive>
          <!-- jar包中不包括以下文件 -->
          <excludes>
            <exclude>mapper/**</exclude>
            <exclude>static/**</exclude>
            <exclude>templates/**</exclude>
            <exclude>**/*.yml</exclude>
            <exclude>**/*.xml</exclude>
            <exclude>**/*.properties</exclude>
          </excludes>
          <outputDirectory>${project.build.directory}</outputDirectory>
        </configuration>
      </plugin>
      <!-- 分離打包關鍵代碼 maven-dependency-plugin -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.8</version>
        <executions>
          <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <goals>
<!--              <goal>copy-dependencies</goal>-->
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <type>jar</type>
              <includeTypes>jar</includeTypes>
              <!-- 存放服務依賴的jar包,存放在服務相同目錄的lib文件夾下 -->
              <outputDirectory>
                ${project.build.directory}/lib
              </outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- 分離打包關鍵代碼 maven-resources-plugin -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>package</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <!-- 指定resources文件 -->
              <resources>
                <resource>
                  <directory>src/main/resources</directory>
                  <!-- 分環(huán)境過濾開啟 -->
                  <filtering>true</filtering>
                  <includes>
                    <include>application.yml</include>
                    <!-- 分環(huán)境配置文件不用可刪除 -->
                    <include>application-dev.yml</include>
                    <include>bootstrap.yml</include>
                  </includes>
                </resource>
                <resource>
                  <directory>src/main/resources</directory>
                  <!-- 分環(huán)境過濾關閉 -->
                  <filtering>false</filtering>
                  <includes>
                    <include>*</include>
                    <include>mapper/**</include>
<!--                    <include>application.yml</include>-->
<!--                    <include>application-dev.yml</include>-->
<!--                    <include>bootstrap.yml</include>-->
                  </includes>
                </resource>
              </resources>
              <!-- 輸出路徑 -->
              <outputDirectory>${project.build.directory}/resources</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- 分離打包結束 -->
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容