1. gzyueqian
      13352868059

      java培訓:如何加速Maven構建

      更新時間: 2021-12-22 14:10:48來源: 粵嵌教育瀏覽量:9632

        Maven是比較流行的java構建工具,Maven的常見問題可能包括依賴沖突、緩存解析,以及構建時間緩慢。為什么Maven構建花費的時間比它應該花費的時間更長,如何改進。下面是對Maven緩慢構建進行故障排除的四個技巧。想要了解有關Maven的更多知識,可以報名參加java培訓來學習,在專業(yè)老師的教學指導下,你可以很快掌握Maven使用技能。


        1. Maven中的并行構建


        默認情況下,Maven不會利用硬件的全部功能。它按順序而不是并行地構建所有模塊。但是,項目設置通常不要求是連續(xù)的。通常,您可以命令Maven分析項目,包括依賴關系圖,并在可能的情況下并行構建項目。您可以指定用于構建項目的確切線程數(shù),也可以使用參數(shù)的可移植版本,并根據(jù)計算機上可用的CPU指定線程數(shù)。


        mvn -T 4 install -- will use 4 threads


        mvn -T 1C install -- will use 1 thread per available CPU core


        雖然您的項目可能不容易并行構建,但值得一試,速度可能會大大加快。默認情況下,每個CPU核心使用一個線程。您的開發(fā)機器可能有多余的計算能力,加快構建總是有用的。


        2. 并行運行Maven測試


        測試是構建的一個方面,它可能對您的構建速度有最大的影響。最常見的做法是在您只對構建工件感興趣時禁用測試,但我們不能推薦這種非常規(guī)工程實踐。如果您真的打算在Maven構建過程中跳過測試目標,那么大多數(shù)插件所尊重的最常見屬性是:-DskipTests=true。然而,您可以在不破壞反饋循環(huán)的情況下實現(xiàn)更快的構建時間。在java培訓中,會有關于Maven的使用技巧的課程,學好這些技巧,有助于更好地進行開發(fā)項目,少出問題。


        答案是并行運行測試。我們剛才討論的并行化技術在模塊級工作。如果您正在使用一個已建立的插件來運行測試,比如說Surefire,您還可以將其配置為在模塊內并行執(zhí)行。并行運行測試可能會導致不必要的副作用,特別是當它們糾結在一起并期望按特定順序執(zhí)行時。然而,這完全是另一回事,你應該完全嘗試一下,看看它是否適合你,以及它能加速你的構建速度。你可以在以后找出失敗的原因。



        3. 僅構建必要的模塊


        您通常使用什么命令來構建項目?答案是:


        mvn clean install


        清理Maven時,會刪除所有生成的工件、所有臨時文件,除了配置和簽入版本控制的文件。然后,它會再次生成這些文件的新副本。當您遇到一個奇怪的緩存問題或一些您有但其他人無法復制的模糊錯誤時,它非常有用。


        然而,這將需要額外寶貴的秒數(shù)和CPU周期來完成基本上不必要的重新創(chuàng)建現(xiàn)有文件的工作。相反,您通常想要做的是以增量方式構建項目。通過java培訓學習,可以幫助你更好地了解Maven相關問題,提高開發(fā)效率。


        假設您有一個多模塊項目,其中包含很少更改的公共核心模塊,以及您當前正在開發(fā)的web界面。更改web界面模塊后,請嘗試運行以下命令:


        mvn install -pl $moduleName -am


        首先,我們刪除了對clean階段的隱式調用。這個項目很少需要清潔,所以我們不想一直這樣做。讓我們看一下剛才使用的Maven命令中其他選項的描述:


        -pl-使Maven只構建指定的模塊,而不是整個項目。


        -am-使Maven了解我們的目標依賴于哪些模塊,并構建它們。


        同時使用這些選項的結果是靈活性和速度的完美結合。我們知道我們通常使用什么模塊,如果我們更改了任何依賴項,它們也將被更新。同時,您的項目構建的很大一部分將被跳過,因為它仍然是新的,不需要重建,或者因為它不是目標模塊的一部分,也不會發(fā)揮作用。


        4. 限制上網(wǎng)


        如果你有時覺得Maven正在下載互聯(lián)網(wǎng),要知道你并不孤單!這是任何構建系統(tǒng)、npm、gradle、sbt最常見的投訴之一。如果你能說出它的名字,你會驚訝于有多少人類已知的庫和可傳遞的依賴項需要在任意的、通常是最不合適的時間下載。然而,有一個簡單的選項可以讓Maven離線工作。


        啟用脫機模式時,Maven在解析依賴項時不會連接到任何遠程存儲庫。本地存儲庫中的所有jar文件仍然可用,因此不會破壞您的正常工作流程。因此,只需在mvn命令后面附加--offline或--o,Maven就不會試圖檢查您最喜歡的依賴項的新快照,也不會讓您等待網(wǎng)絡響應。想要學習java更多知識和技能,可以考慮參加java培訓,有經(jīng)驗豐富的專業(yè)講師指導教學,有緊跟市場需求的實時課程,可以讓你快速掌握這門技術,節(jié)約時間,少走彎路。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 思思热国产视频观看 | 中文字幕视频专区999zyz | 中文字幕级片在线播放 | 日韩亚洲欧美中文字幕影音先 | 伊人色综合久久天天 | 久久久一本精品99久久k精品66 |