編譯Netty源碼遇到的一些問題-缺少io.netty.util.collection包


缺少包和java類

下載好Netty的源碼后,導入到IDE,運行自帶的example時編譯不通過。

如下圖,是因為io.netty.util.collection的包沒有

 

點進去看,確實沒有這個包

發現貓膩

發現這個common包下有一個templates包,放的應該是模板。還有一個script包,放的應該是腳本。

 看一下這個腳本,應該是替換掉下面模板文件名的K字母,替換成Byte、Char等單詞,生成如ByteObjectHashMap、CharObjectHashMap。。。的類

如何運行腳本生成java類 

知道了這個原理,那怎么運行這個腳本的呢?

我們看他是groovy結尾的,應該是需要groovy的一個插件,pom文件里也確實有這個插件

怎么用這個插件運行腳本呢?

選中這個common項目右鍵選擇Run Maven - compile

運行失敗

不好意思,報了一堆錯,錯誤信息缺失一片空白

打開對應的java文件,也是沒有任何錯誤提示的,難搞。。。

解決運行失敗

別急,慢慢看。把錯誤拉到最后看

粘出來錯誤信息:

E:\idea_work\netty-4.1\common\src\main\resources\META-INF\native-image\io.netty\common\native-image.properties:0: invalid newline character (expected: CRLF) [Newline]
E:\idea_work\netty-4.1\common\src\main\resources\META-INF\native-image\io.netty\common\native-image.properties:1: 文件未以空行結尾。 [NewlineAtEndOfFile]

 

說這個文件以空行結尾。納尼。。。

打開這個文件看看,確實如此。那我們把這個空行刪了。再試試吧。

 

很遺憾,還是這個錯哈哈哈。。。

最終解決辦法

不過,還有解決辦法。

百度了一下,可以跳過這個樣式檢查,解決辦法來自於這里

1、在編譯的時候加一個參數:-Dcheckstyle.skip=true。

2、或者是在pom中加<skip>true</sikp>,如

<project>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
           <skip>true</skip>
        </configuration>
      </plugin>
      ...
    </plugins>
    ...
  </build>
  ...
</project>

再次編譯

 編譯成功

 果然好了。在target下生成了對應的文件。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM