欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

減小Maven項目生成的JAR包體積實現(xiàn)提升運維效率

 更新時間:2024年10月24日 09:24:18   作者:知楠行易  
在Maven構建Java項目過程中,減小JAR包體積可通過排除不必要的依賴和使依賴jar包獨立于應用jar包來實現(xiàn),在pom.xml文件中使用<exclusions>標簽排除不需要的依賴,有助于顯著降低JAR包大小,此外,將依賴打包到應用外,可減少應用包的體積

在使用 Maven 構建 Java 項目時,有時需要減小生成的 JAR 包的體積,以提高部署效率或減少資源消耗。

以下是一些有效的方法來減小 JAR 包的體積:

  1. 排除不必要的依賴
  2. 打包時,依賴jar包獨立于應用jar包

1. 排除不必要的依賴

通過排除項目中不需要的依賴,可以顯著減小 JAR 包的體積。

在 pom.xml 中,可以在 標簽中使用 標簽來排除特定的依賴。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.5.4</version>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- 其他依賴項 -->
</dependencies>

2. 依賴jar包獨立于應用jar包

一般來講依賴不會經(jīng)常變化,所以將 依賴 打包到應用外是個好主意,可以有效的減小應用包。

pom.xml 配置如下:

<!-- 打包時 依賴獨立于項目jar包-->
<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>3.2.0</version>
      <configuration>
          <archive>
              <manifest>
                  <addClasspath>true</addClasspath>
                  <classpathPrefix>lib/</classpathPrefix>
                  <mainClass>com.github.nan.web.NanWebApplication</mainClass>
              </manifest>
          </archive>
      </configuration>
  </plugin>
  <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <version>3.1.2</version>
      <executions>
          <execution>
              <id>copy-dependencies</id>
              <phase>package</phase>
              <goals>
                  <goal>copy-dependencies</goal>
              </goals>
              <configuration>
                  <outputDirectory>${project.build.directory}/lib</outputDirectory>
                  <includeScope>runtime</includeScope>
              </configuration>
          </execution>
      </executions>
  </plugin>

注意:

  • 第一部署應用 或者依賴有更新時
  • 需要把依賴(lib)也上傳到服務 

效果如下:

├── target
│   ├── classes
│   ├── generated-sources
│   ├── lib
│   ├── maven-archiver
│   ├── maven-status
│   └── web-0.0.1-SNAPSHOT.jar

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java線程中的Timer和TimerTask原理詳解

    Java線程中的Timer和TimerTask原理詳解

    這篇文章主要介紹了Java線程中的Timer和TimerTask原理詳解,Timer和TimerTask成對出現(xiàn),Timer是定時器,TimerTask是定時任務,換句話說,定時任務TimerTask是給定時器Timer執(zhí)行的具體任務,需要的朋友可以參考下
    2023-10-10
  • 使用SpringBoot + Redis + Vue實現(xiàn)動態(tài)路由加載頁面的示例代碼

    使用SpringBoot + Redis + Vue實現(xiàn)動態(tài)路由加載頁面的示例代

    在現(xiàn)代 Web 應用開發(fā)中,動態(tài)路由加載能夠顯著提升應用的靈活性和安全性,本文將深入探討如何利用 Spring Boot、Redis、Element UI 和 Vue 技術棧實現(xiàn)動態(tài)路由加載,并通過 Redis 生成和驗證有效鏈接以實現(xiàn)頁面訪問控制,需要的朋友可以參考下
    2024-09-09
  • Java實現(xiàn)XML與JSON的互相轉換詳解

    Java實現(xiàn)XML與JSON的互相轉換詳解

    這篇文章主要為大家詳細介紹了如何使用Java實現(xiàn)XML與JSON的互相轉換,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2025-03-03
  • Java 利用枚舉實現(xiàn)接口進行統(tǒng)一管理

    Java 利用枚舉實現(xiàn)接口進行統(tǒng)一管理

    這篇文章主要介紹了Java 利用枚舉實現(xiàn)接口進行統(tǒng)一管理,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java IO和NIO的基本概念和API詳解

    Java IO和NIO的基本概念和API詳解

    JavaIO是基于流的阻塞式I/O,適用于低并發(fā)場景;JavaNIO是基于通道和緩沖區(qū)的非阻塞式I/O,適用于高并發(fā)場景
    2025-03-03
  • MyBatis多表操作查詢功能

    MyBatis多表操作查詢功能

    這篇文章主要介紹了MyBatis多表操作,包括一對一查詢,一對多查詢的模型,多對多查詢的需求,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2021-11-11
  • 老生常談java數(shù)組中的常見異常

    老生常談java數(shù)組中的常見異常

    數(shù)組是用來存儲一系列數(shù)據(jù),但它往往被認為是一系列相同類型的變量,異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤有時候是可以避免的,接下來讓我們詳細的了解吧
    2022-03-03
  • Spring Cloud 部署時使用 Kubernetes 作為注冊中心和配置中心的方法

    Spring Cloud 部署時使用 Kubernetes 作為注冊中心和配置中

    Spring Cloud Kubernetes提供了使用Kubernete本地服務的Spring Cloud通用接口實現(xiàn),這篇文章主要介紹了Spring Cloud 部署時如何使用 Kubernetes 作為注冊中心和配置中心,需要的朋友可以參考下
    2024-05-05
  • 關于Java中使用jdbc連接數(shù)據(jù)庫中文出現(xiàn)亂碼的問題

    關于Java中使用jdbc連接數(shù)據(jù)庫中文出現(xiàn)亂碼的問題

    這篇文章主要介紹了關于Java中使用jdbc連接數(shù)據(jù)庫中文出現(xiàn)亂碼的問題,默認的編碼和數(shù)據(jù)庫表中的數(shù)據(jù)使用的編碼是不一致的,如果是中文,那么在數(shù)據(jù)庫中執(zhí)行時已經(jīng)是亂碼了,需要的朋友可以參考下
    2023-04-04
  • Java獲取本機IP地址的方法代碼示例(內(nèi)網(wǎng)、公網(wǎng))

    Java獲取本機IP地址的方法代碼示例(內(nèi)網(wǎng)、公網(wǎng))

    在IT領域獲取本機IP地址是一項基礎但重要的任務,特別是在網(wǎng)絡編程、遠程協(xié)作和設備通信中,這篇文章主要給大家介紹了關于Java獲取本機IP地址的方法(內(nèi)網(wǎng)、公網(wǎng)),需要的朋友可以參考下
    2024-07-07

最新評論