Introduction
建立jar檔是build的基本,目的可能是為了建立可執行jar檔或給其它專案參考的jar檔。本篇主要記載我所遇到的問題。
Encoding Error
如果是已經能夠在eclipse上成功編譯了,通常在加入以下宣告後,就能成功build出jar檔:
jar { baseName = 'TonylinUtil' version = '1.0.0' }
然而我出現了encoding為MS950問題:
雖然我檔案儲存編碼為UTF-8,但gradle卻以系統編碼做為預設去編譯。因此,我加入以下宣告設定encoding:compileJava { options.encoding = 'UTF-8' }
Compiler Error - cannot find symbol of the inner class
某個類別中有個inner class,而那個inner class使用gradle編譯時會出現以下錯誤:
參考此link提及使用完整的package名稱可以解決此問題,一試果然可以解決:static interface MyKernel32 extends Library -> static interface MyKernel32 extends com.sun.jna.Library
另外一個方式就是別用inner class,不過我想會用inner class就是考慮到封裝問題吧! 不過還沒找到根本原因,以後有機會使用到gradle再研究看看。
Deprecation and Unchecked Warning
編譯時非常有可能因為程式碼或引用函式庫的關係,出現Deprecation與Unchecked Warning:
我們可以在compileJava中加入以下宣告,去看詳細內容了解原因並解決:compileJava { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
以Deprecation來說,就是去使用新的API介面;Unchecked如果確認無礙,就宣告@SuppressWarnings(“unchecked”)。
留言
張貼留言