MyBatis如何給源碼加中文註釋?

我們在看框架源碼的時候,如果沒有註釋,看起來會比較喫力。所以如果能夠一邊看源碼一邊自己加中文註釋,下次閱讀的時候就會輕鬆很多。

問題是:通過maven下載的jar,查看源碼,實際上看到的是經過反編譯的class文件,是不能夠修改的(提示:file is read only)。
如果把當前maven下載的jar包強行關聯到自己下載的源碼,又有可能會出現字節碼跟源碼文件不一致的情況(提示:Library source does not match the bytecode for class),導致debug的時候無法進入代碼。

如果要保證源碼和字節碼一致,最好的辦法當然是在本地把下載的源碼編譯生成jar包,上傳到本地maven倉庫,再引用這個jar

以MyBatis爲例,如果我們要給MyBatis源碼加上中文註釋(以IDEA操作爲例):

01 配置Maven

因爲需要用Maven打包編譯源代碼,所以第一步是檢查Maven的配置。

第一個是環境變量,需要在系統變量中添加MAVEN_HOME,配置Maven主路徑,例如“E:\dev\apache-maven-3.5.4”,確保mvn命令可以使用。

第二個是檢查Maven的配置。Maven運行時,默認會使用conf目錄下的settings.xml配置,例如:E:\dev\apache-maven-3.5.4\conf\settings.xml。

爲了保證下載速度,建議配置成國內的aliyun中央倉庫(此處需要自行搜索)。

並且,settings.xml中的localRepository應該和IDEA中打開的項目設置中的Local repository保持一致(例如:E:\repository)。否則項目引入依賴時,無法讀取到編譯後的jar包。

 

02 下載編譯MyBatis源碼

因爲MyBatis源碼編譯依賴parent項目的源碼,所以第一步是編譯parent項目。

先從git clone兩個工程的項目(截止2020年4月,最新版本是3.5.4)。

以在E盤根目錄下載爲例。

git clone https://github.com/mybatis/parent
git clone https://github.com/mybatis/mybatis-3

打開mybatis-3中的pom.xml文件,查看parent的版本號,例如:

  <parent>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-parent</artifactId>
    <version>31</version>
    <relativePath />
  </parent>

確定parent版本是31(記住這個數字)。

把mybatis版本號改成自定義的版本號,避免跟官方版本號衝突(加上了-snapshot):

  <artifactId>mybatis</artifactId>
  <version>3.5.4-snapshot</version>
  <packaging>jar</packaging>

進入parent目錄,切換項目分支(不能在默認的master分支中編譯),工程名後面的數字就是前面看到的parent版本號。

開始編譯parent項目:

cd parent
git checkout mybatis-parent-31
mvn install

 

接下來編譯mybatis工程,進入mybatis-3目錄,切換到最新3.5.4分支(不能在默認的master分支中編譯)。

cd ../mybatis-3
git checkout mybatis-3.5.4
mvn clean
mvn install -DskipTests=true -Dmaven.test.skip=true -Dlicense.skip=true

 

編譯完畢,本地倉庫就會出現一個編譯後的jar包,例如:E:\repository\org\mybatis\mybatis\3.5.4-snapshot\mybatis-3.5.4-snapshot.jar, 在我們的項目中就可以引入這個jar包了(version是自定義的version)。

<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.4-snapshot</version>
</dependency>

03 關聯jar包到源碼

本地編譯的jar包已經有了,接下來是把jar包和源碼關聯起來。

Project Structure —— Libries —— Maven: org.mybatis:mybatis:3.5.4-snapshot —— 在原來的Sources上面點+(加號) —— 選擇到下載的源碼路徑,例如:E:\mybatis-3\src\main\java,點擊OK.

關聯好之後,開始打斷點debug,就會進入到本地的源碼,可以給本地的源碼加上註釋了。

04 注意

1、如果之前打開過類的字節碼文件,本地可能有緩存,一樣會有“Library source does not match the bytecode for class”的提示。解決辦法:File —— Invalidate Caches and Restart(IDEA會重啓)。

2、如果添加註釋導致了debug的當前行跟實際行不一致,再把mybatis3工程編譯一次即可。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章