Build jar

建立jar檔是build的基本,目的可能是為了建立可執行jar檔或給其它專案參考的jar檔。本篇主要記載我所遇到的問題。

如果是已經能夠在eclipse上成功編譯了,通常在加入以下宣告後,就能成功build出jar檔:

jar {
    baseName = 'TonylinUtil'
    version =  '1.0.0'
}
然而我出現了encoding為MS950問題:

雖然我檔案儲存編碼為UTF-8,但gradle卻以系統編碼做為預設去編譯。因此,我加入以下宣告設定encoding:
compileJava {
    options.encoding = 'UTF-8'
}

某個類別中有個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與Unchecked Warning:

我們可以在compileJava中加入以下宣告,去看詳細內容了解原因並解決:

compileJava {
    options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
以Deprecation來說,就是去使用新的API介面;Unchecked如果確認無礙,就宣告@SuppressWarnings(“unchecked”)。