差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
java:gradle:build_jar [2016/09/16 17:05]
tony [Deprecation and Unchecked Warning]
java:gradle:build_jar [2023/06/25 09:48] (目前版本)
行 1: 行 1:
 {{tag>​gradle}} {{tag>​gradle}}
 ====== Build jar ====== ====== Build jar ======
 +===== Introduction =====
 +建立jar檔是build的基本,目的可能是為了建立可執行jar檔或給其它專案參考的jar檔。本篇主要記載我所遇到的問題。
 ===== Encoding Error ===== ===== Encoding Error =====
 如果是已經能夠在eclipse上成功編譯了,通常在加入以下宣告後,就能成功build出jar檔:​ 如果是已經能夠在eclipse上成功編譯了,通常在加入以下宣告後,就能成功build出jar檔:​
行 17: 行 19:
 } }
 </​code>​ </​code>​
 +===== Compiler Error - cannot find symbol of the inner class =====
 +某個類別中有個inner class,而那個inner class使用gradle編譯時會出現以下錯誤:​\\
 +{{:​java:​gradle:​gradle_compile_problem_with_innerclass_of_interface.png|}}\\
 +參考此[[http://​stackoverflow.com/​questions/​28174433/​gradle-compilejava-cannot-find-symbol-from-source-file|link]]提及使用完整的package名稱可以解決此問題,一試果然可以解決:​
 +<code java>
 +static interface MyKernel32 extends Library
 +->
 +static interface MyKernel32 extends com.sun.jna.Library
 +</​code>​
 +另外一個方式就是別用inner class,不過我想會用inner class就是考慮到封裝問題吧! 不過還沒找到根本原因,以後有機會使用到gradle再研究看看。
 ===== Deprecation and Unchecked Warning ===== ===== Deprecation and Unchecked Warning =====
 編譯時非常有可能因為程式碼或引用函式庫的關係,出現Deprecation與Unchecked Warning:\\ 編譯時非常有可能因為程式碼或引用函式庫的關係,出現Deprecation與Unchecked Warning:\\
行 27: 行 39:
 </​code>​ </​code>​
 以Deprecation來說,就是去使用新的API介面;Unchecked如果確認無礙,就宣告@SuppressWarnings("​unchecked"​)。 以Deprecation來說,就是去使用新的API介面;Unchecked如果確認無礙,就宣告@SuppressWarnings("​unchecked"​)。
 +
 +=====    =====
 +----
 +\\
 +~~DISQUS~~