成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一個SDK給我干懵了?大廠的SDK就這?

開發 開發工具
大家好,我是小猿來也,一個熱衷寫 bug 的程序猿。一天我正在專心致志寫 Bug 的時候,一個同事跑過來找我。說有個很特別三方依賴庫的 jar 包,里面有一些 netty 的依賴,但是無法確定 netty 的具體版本,讓我幫忙給看看。

 [[411255]]

本文轉載自微信公眾號「小猿來也」,作者小猿來也。轉載本文請聯系小猿來也公眾號。

大家好,我是小猿來也,一個熱衷寫 bug 的程序猿。

一天我正在專心致志寫 Bug 的時候,一個同事跑過來找我。

說有個很特別三方依賴庫的 jar 包,里面有一些 netty 的依賴,但是無法確定 netty 的具體版本,讓我幫忙給看看。

還有這事兒?

于是就讓他把 jar 發來看看,收到后我就趕緊給它解壓了,它的目錄結構是下面這樣的:

當時我就

[[411256]]

這完全不按套路出牌呀,pom 文件哪里去了呢?gradle 文件哪里去了?這是什么黑科技呢?

盯著這個 jar 包解壓之后的文件目錄,翻來覆去好幾遍,也發現相關依賴庫的坐標聲明文件。

于是就問問同事有沒有源文件,他說有,麻溜的發了過來,比平時喊他吃飯都快。

我打開一看,依然啥都沒有。

頓時覺得這個類庫有點不一樣!

沒有依賴庫的坐標,怎么確定依賴庫的版本呢?

同事那邊還在催,能先把這個類庫為什么沒有依賴庫的坐標這個點放一放。

所以就先用一個一個版本嘗試的方法來先幫他確定依賴的 netty 版本。

我隨便打開了一個文件,發現里面有很多org.jboss.netty的依賴。

然后我就打開了 Maven 的中央倉庫:https://mvnrepository.com 輸入了netty關鍵字進行搜索。

搜索結果前面很多都是io.netty的信息,到了第7個才是org.jboss.netty的信息,就是我上圖中圈出來的那個。

然后我就點了進去:https://mvnrepository.com/artifact/org.jboss.netty/netty

發現里面提供的主要是 Netty3.0.x、3.1.x、3.2.x的版本。

基于常識項目里引用 Netty 基本上都會引用Final的版本,所以我就在這個類庫的源文件中加了一個 pom 文件,先拿3.2.10.Final這個版本試了下。

  1. <!-- https://mvnrepository.com/artifact/org.jboss.netty/netty --> 
  2. <dependency> 
  3.     <groupId>org.jboss.netty</groupId> 
  4.     <artifactId>netty</artifactId> 
  5.     <version>3.2.10.Final</version> 
  6. </dependency> 

 

添加完上面的依賴坐標信息后,嘗試編譯源代碼,發現缺少org.jboss.netty.handler.codec.http.websocketx包。

然后分別試了3.1.5.GA缺少org.jboss.netty.handler.codec.http.websocketx包,3.0.0.GA缺少org.jboss.netty.handler.codec.http包。

也就是說3.0.x、3.1.x、3.2.x這個三個系列的版本里沒有合適的。

不死心的我又搜了一下整個中央倉庫里,也沒能查到更多的關于org.jboss.netty的包。

所以到這里 https://mvnrepository.com/artifact/org.jboss.netty/netty 這條路是死了。

但是中央倉庫中org.jboss.netty:https://mvnrepository.com/artifact/org.jboss.netty/netty 這個頁面中的一段說明引起了我的注意。

Note: This artifact was moved to:

io.netty ? netty

對,就是上面這段話,我在下圖圈出了它。

它告訴我們org.jboss.netty >> netty已經遷移到了io.netty >> netty。而且它還提供了跳轉鏈接:https://mvnrepository.com/artifact/io.netty/netty ,所以我就點了進去。

進去后發現這個頁面里歸檔了3.3.x~3.10.x,以及4.0.x的 netty 制品。

我先拿3.10.6.Final試了下

  1. <!-- https://mvnrepository.com/artifact/io.netty/netty --> 
  2. <dependency> 
  3.     <groupId>io.netty</groupId> 
  4.     <artifactId>netty</artifactId> 
  5.     <version>3.10.6.Final</version> 
  6. </dependency> 

 

重新編譯之后發現所有的import都沒問題了,但是會有部分類的部分方法缺失。

這個時候感覺版本已經比較接近了相對正確的版本了,接下來就選了跟它最近的次新版本3.9.9.Final編譯之后發現完全沒問題了,在3.10.6.Final中缺失(已被刪除的)的方法果然是在3.9.9.Final標記刪除的方法。

所以基本上可以認為3.9.9.Final極有可能是這個三方 jar 所依賴的 netty 的版本。

稍微有點兒意外的發現,就是在3.3.x~3.10.x中雖然依賴坐標中的 groupId 是 io.netty 但是實際的包路徑卻是 org.jboss.netty.xxx,也算是漲了知識啦。

[[411257]]

然后就是 https://mvnrepository.com/artifact/io.netty/netty 這個頁面上同樣有一段說明

Note: This artifact was moved to:

io.netty ? netty-all

就是上圖中我圈出的部分,就是說io.netty >> netty已經遷移到了io.netty >> all了。

同時這個在netty的官網中也有說明

好奇害死貓,所以我就又跑去 https://mvnrepository.com/artifact/io.netty/netty-all 這個頁面看了看。

我發現io.netty >> all中歸檔了4.0.x、4.1.x以及最新的5.0.x

經過對比確認我發現在3.2.x及其之前的版本中 netty 的 groupId 是org.jboss.netty,artifactId 是netty,包路徑是org.jboss.netty。

3.3.x~3.10.x中 netty 的 groupId 是io.netty,artifactId 是netty,包路徑是org.jboss.netty。

4.0.0.Final及其之后的版本中netty的 groupId 是io.netty,artifactId 是netty-all,包路徑是io.netty。

version groupId artifactId package
<=3.2.x org.jboss.netty netty org.jboss.netty
3.3.x~3.10.x io.netty netty org.jboss.netty
=>4.0.0.Final io.netty netty-all io.netty

所以3.9.9.Final就是這個三方 jar 所依賴的 netty 的版本,應該符合預期。

然后就用同事發來的 jar 對應的源碼加上我添加的 pom 文件的信息,快速重新打了個包發給了他去救火。

他測試一下,最終給的反饋是完全沒問題。

到這里這次給一個無依賴坐標的三方類庫項目確定 netty 依賴版本之旅就算結束了,哈哈,都看到這啦還不趕緊關注一下。

最后回到了文章開始的問題,你知道這種無明確依賴坐標信息的 jar 包是如何生成的呢?為什么會有這種 jar 出現呢?它有什么弊端嗎?

 

責任編輯:武曉燕 來源: 小猿來也
相關推薦

2021-12-09 11:31:16

跨域后端開發

2024-11-11 14:57:56

JWTSession微服務

2021-08-26 06:57:53

零拷貝技術磁盤

2013-06-03 15:38:16

iOS開發iOS SDK動態Action Sh

2024-05-07 09:02:47

2022-05-31 08:35:05

RocketMQACK客戶端

2024-11-08 15:09:59

2017-07-10 16:19:36

IT發財離婚

2019-02-19 19:16:04

程序員元宵節燈謎

2022-03-07 14:57:36

MySQLInnoDB索引

2020-10-24 14:05:34

CEO互聯網開發者

2023-01-26 11:43:03

線程池CPUJava

2023-01-26 02:12:23

數據分析梳理業務框架

2021-05-14 07:11:49

方法調用類加載

2021-04-21 08:54:49

Go語言程序

2018-07-26 13:04:33

Dell

2025-06-11 01:10:00

2013-02-01 16:06:01

云安全云計算云谷

2025-03-28 08:53:51

2015-06-01 15:11:37

數據庫update
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美成人h版在线观看 | 成人做爰69片免费观看 | 久久综合久色欧美综合狠狠 | 91精品国产91久久久久久 | 国产精品亚洲视频 | 中文字幕亚洲一区二区va在线 | 成人精品一区二区三区中文字幕 | 九九九精品视频 | 国产精品久久久久久久一区二区 | 成人 在线| 亚洲国产精品一区二区第一页 | 久久久久久久av麻豆果冻 | 国产91久久久久久久免费 | 欧美精品一区二区三区四区 在线 | 精品久久久久久18免费网站 | 婷婷五月色综合 | 国产精品国产三级国产aⅴ原创 | 国产成人福利视频 | 欧美一区二区三区一在线观看 | 日韩欧美国产一区二区三区 | 国产一区在线免费观看 | 国产精品日本一区二区在线播放 | caoporn国产| 国产精品成人一区二区三区 | 国产精品1区2区3区 一区中文字幕 | 五月天婷婷综合 | 天天影视亚洲综合网 | 国产成人一区二区 | 日韩在线视频免费观看 | 成人免费看片网 | 黄色免费av | 欧美精品一区二区三区视频 | 伊色综合久久之综合久久 | 欧美精品在线视频 | 国产精品av久久久久久久久久 | 亚洲第一天堂无码专区 | 久久久久国产一区二区三区四区 | 超碰综合 | 视频精品一区二区三区 | av日日操| 国产精品毛片一区二区在线看 |