1. 如何使用Maven編譯Github上的工程
思路一:下載源碼,自己下載依賴lib,構建編譯環境,成功;
1. 從maven 地址下載,一般關心下面紅色的3個,帶sources的肯定就是源碼了,但是裡面沒有相關依賴關系,這個可以看 .pom 文件;
將sources.jar 變為zip 文件,解壓出來;
在你項目的 androidstudio project 中新建一個 java library;命名為 nettylib-4.0.14
將2中源碼文件io/netty/ 拷貝到src/main/Java/ 目錄下
studio sync,編譯看報錯的地方,或者根據 1 中地址裡面的 pom 文件,找到netty 編譯需要依賴的第三方 jar
依賴jar 查詢地址:
最後nettylib-4.0.14 中的 build.gradle 配置如下:
其中會遇到不少問題,我搞了很久,因為走了些彎路,如上圖,我直接貼出來配置了,但是仍然有少數的文件會報錯,因為和項目無關,所有直接刪掉啦;
編譯可能會遇到各種錯誤,我就不一一貼出來了,大家有問題,請留言;
思路二:在github上下載源碼,並且按照其設置來配置編譯環境
git 源碼地址:
編譯環境搭建:
主要有eclipse +maven 和使用IDEA
1. 使用eclipse +maven,比較容易報錯,因為eclipse 和maven 可能有不兼容的情況;
建議使用前最好,進入netty下載目錄,
1。mvn install 在本地Repository中安裝jar
2。mvn eclipse:eclipse 生成eclipse項目
然後就多了 .classpath 和 .project,可以直接導入eclipse
我2種都試過啦,eclipse 報錯比較難搞定,最後使用的是IDEA;
直接以maven 工程導入就行了,導入後,編譯也ok
2. 如何編譯 netty 源碼並導入android studio
一、修改Android Studio(以下簡稱AS)的內存配置
因為在導入源碼時需要消耗大量內存,所以先修改IDEA_HOME/bin/studio.vmoptions中-Xms和-Xmx的值。文檔中使用的是748m, 可自行修改。
二、配置AS的JDK、SDK
在IDE中添加一個沒有classpath的JDK, 這樣可以確保使用源碼里的庫文件
並將其作為要使用的SDK的Java SDK。
三、生成導入AS所需配置文件(*.ipr)
①編譯源碼(為了確保生成了.java文件,如R.java;如果編譯過,則無需再次編譯)
②檢查out/host/linux-x86/framework/目錄下是否有idegen.jar
如果idegen.jar不存在,執行:
mmm development/tools/idegen/
在5.0.1的源碼中會生成res.java的文件夾,導致idegen.jar運行時拋FileNotFoundException,這是idegen的代碼不夠嚴謹造成的。
我的分享里有修改這個bug的patch,或者直接使用我分享的idegen.jar。
③執行
development/tools/idegen/idegen.sh
等待出現類似下面的結果:
Read excludes: 5ms
Traversed tree: 44078ms
這時會在源碼的根目錄下生成android.ipr和android.iml兩個IntelliJ IDEA(AS是基於IntelliJ IDEA社區版開發的)的配置文件