偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

為什么 Spring Boot 2.3.0 放棄 Maven 轉(zhuǎn)投 Gradle ?

開發(fā) 開發(fā)工具
在 2.3.0 中對 Spring Boot 進行了相當(dāng)重大的更改,這是使用 Gradle 而非 Maven 構(gòu)建的項目的第一個版本。

 在 2.3.0 中對 Spring Boot 進行了相當(dāng)重大的更改,這是使用 Gradle 而非 Maven 構(gòu)建的項目的第一個版本。

Spring 的每個項目都獨立的項目組在開發(fā)運營,在用戶最常使用的白盒部分(例如 API 設(shè)計)保持一致性,對于用戶不可見的黑盒部分,各個項目組選擇自己適合工具沒有統(tǒng)一的約定。

例如: 項目構(gòu)建工具。Spring Framework 自 2012 年的 3.2.0 起就使用 Gradle 構(gòu)建,而一年后開始使用 Spring Boot,此后不久又開始使用 Spring Cloud,兩者都基于 Maven。

項目 構(gòu)建工具
Spring Framework Gradle
Spring Boot Maven
Spring Cloud Maven

為什么要切換

Spring Boot 團隊考慮由 Maven 切換到 Gradle 的主要原因為了減少構(gòu)建項目所需的時間。在開發(fā)和測試過程中,等待構(gòu)建完成所花費的時間增加了修復(fù)錯誤和實現(xiàn)新功能所花費的時間。

為了解決這個問題,團隊曾嘗試利用 Maven 對并行構(gòu)建的支持。由于 Spring Boot 構(gòu)建的復(fù)雜性,特別是對 Invoker 插件的使用,嘗試失敗。通過將構(gòu)建分為四個部分來解決 CI 問題。首先構(gòu)建項目的主要核心,然后并行構(gòu)建三個獨立的部分。但 CI 的構(gòu)建仍需要一個小時或更長時間。此外,由于針對的是模塊化 CI 構(gòu)建,因此并沒有使得開發(fā)人員本地構(gòu)建效率有所改變。

Spring Boot 團隊在其他利用 Gradle 作為構(gòu)建工具的 Spring 項目中看到了 Gradle 的增量和并行構(gòu)建以及在第三方項目中看到了 Gradle 的構(gòu)建緩存的好處。希望通過使用 Gradle 為 Spring Boot 構(gòu)建獲得類似的好處。

Gradle 具有非常靈活的構(gòu)建模型,并且可以定義每個任務(wù)的輸入和輸出及其相互依賴性。這種構(gòu)建模型的好處是,它允許任務(wù)并行運行,同時也可以增量、緩存或完全跳過。換句話說,Gradle 可以最小化的執(zhí)行必要的 CI 任務(wù)。雖然可以使用了 Gradle Enterprise 的 Maven 支持,我們也可以享受構(gòu)建緩存和跳過的好處。但是要充分享受這四個方面的好處,必須嘗試切換到 Gradle。

如何切換

Gradle 配置過于靈活,導(dǎo)致它的構(gòu)建比基于 Maven 構(gòu)建更難以維護和理解。例如: 同一個構(gòu)建結(jié)果,可以通過不同的配置實現(xiàn)。如果切換到 Gradle,需要避免這種情況。從目前發(fā)布的四個 Spring Boot 2.3 里程碑版本,在核心團隊或貢獻者中,還沒有發(fā)現(xiàn)任何重大的構(gòu)建問題。

  • Spring Boot 關(guān)鍵功能是約定優(yōu)于配置,將這種方法應(yīng)用于構(gòu)建。避免在 build.gradle 文件中包含命令式邏輯,編寫了幾個可以在項目的中找到的小插件 buildSrc。。

雖然現(xiàn)有 Gradle 生態(tài)系統(tǒng)對 Spring Boot 構(gòu)建幾乎空白,需要從頭通過編寫很多通用的 gradle 插件來應(yīng)用到 Spring Boot,但遷移到 Gradle 的提交從代碼庫中刪除了近 9500 行。

切換結(jié)果

就減少項目構(gòu)建時間而言,將構(gòu)建遷移到 Gradle 無疑是成功的。如上所述,在 CI 和開發(fā)人員機器上,基于 Maven 的完整構(gòu)建都需要一個小時或更長時間。而基于 Gradle 的平均成功構(gòu)建時間為 9 分 22 秒,如以下截圖所示:

 

如果對構(gòu)建性能的更多細節(jié)感興趣,可以在 Spring Boot 的公共Gradle Enterprise實例上獲得更多數(shù)據(jù)。

除了提高性能外,對其他功能進行探索。例如,一段時間以來,進行許多不穩(wěn)定的測試。由于這些原因,構(gòu)建失敗的次數(shù)比預(yù)期要多,可以在 Tests 儀表板中看到這一點。使用 Gradle 分片測試來替代 CI 的通用測試方案,并幫組我們了解是否已成功解決問題。

 

結(jié)論

CI 構(gòu)建現(xiàn)在平均大約需要 20 分鐘,比以前快 3-4 倍。

本地構(gòu)建平均需要 2 分鐘 30 秒,比以前快 20-30 倍。

 

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2020-08-14 10:40:35

RestTemplatRetrofitJava

2022-11-01 08:55:55

編譯工具MavenSpring

2015-04-16 11:04:13

ICT渠道華為

2023-03-10 10:32:44

Vanilla OSUbuntuDebian Sid

2009-04-23 10:41:59

微軟IE瀏覽器

2024-06-24 07:58:00

2023-07-23 17:19:34

人工智能系統(tǒng)

2011-06-08 10:30:08

MongoDB

2016-12-28 10:37:46

AndroidGradleApache Ant

2011-06-28 09:22:46

黑莓RIMAndroid

2013-05-15 11:02:17

2013-03-14 10:47:58

2021-02-01 07:20:51

KafkaPulsar搜索

2019-12-30 08:34:40

ZabbixPrometheus監(jiān)控

2011-06-23 14:32:53

LTECDMA運營商

2022-05-10 15:24:34

KafkaZooKeeperKafka Raft

2020-11-09 14:03:51

Spring BootMaven遷移

2012-05-13 14:15:49

2018-12-21 11:26:49

MySQLMongoDB數(shù)據(jù)庫

2020-05-07 16:30:32

Spring BootJava
點贊
收藏

51CTO技術(shù)棧公眾號