IntelliJIDEA中看到classes,sources,javadocs三種jar的區別和各自的作用

論儘先生發表於2019-02-16

在 intelliJ idea 裡面看到 ,Project Structure——》 Libraries ——》 Sources 的路徑是紅色的

看圖會比較好。以guava包為例來說明。

可以看到在這看整個maven專案的依賴時,發現如圖的情況,這紅色是什麼情況,是報錯嗎?需要處理嗎?這3個不同jar都是什麼東西,各自有啥作用。大概會有這麼些疑問吧。️。

假如在依賴庫如上的情況下,你點進去,看guava的原始碼,會有下圖的效果。

給你2個選擇,一個是選則source,一個是下載source。注意,這個時候,你看到的檔案是class檔案,是可以直接執行的檔案,之所以能看到內部的具體實現,是idea給你自動逆轉換啦。感謝idea吧

(記得當年剛剛工作的時候,使用的eclipse,然後debug的時候,假如要進入這些個沒有sources的jar的時候,就進不去這個class檔案,他還傻乎乎的給個彈窗,讓我倒入sources檔案,還是idea高階,直接喊你下載。)

這個時候點選download sources,下載原始碼。

這個時候,你看到的檔案,就變成啦Java檔案,而且,還帶上了很多的註釋。

這個時候,再看倉庫library的變化

可以看到剛剛還是紅色的sources檔案,現在有啦,下面的Javadoc還沒有。

然後,再看mven的repository裡面的情況

可以看到jar型別的檔案jar包,這地方有2個。

(有麼有疑惑,這個帶sources的jar怎麼比classes的jar還小呢?因為Java檔案在編譯生成class檔案的時候,會對程式碼進行優化,這個優化是針對執行的,所以,由Java檔案變class檔案,他到底是變大,還是變小,這個是不確定。)

三個jar包同時存在的也不是沒有,看下面

最後,說一下,各自的作用。

classes的jar,是正兒八經執行專案的時候使用的,因為這個是直接編譯好的class檔案,可以直接被虛擬機器執行的。

sources的jar,就是給開發人員看的,自己在學習和debug的時候,可以看到jar包裡面的各種註釋說明,方便學習。

Javadoc的jar,也和sources的jar一個道理吧,起到輔助的作用吧。這個不是必須的,guava就沒有提示你下載這個,就已經顯示了很多的註釋了。

所以,

最開始的那個圖裡面的只要classes的jar不報錯,下面的2個jar,可有可無。不是什麼問題。

瞭解原理就好啦。

我寫完文章,給自己點個贊,不過分吧,
不過分,那我可就點啦啊。

我先點為敬,你們隨意。大家隨意。不要客氣。。。

作者:李學凱
來源:CSDN


相關文章