2013年12月29日

"Head First Programming" by David Griffiths, Paul Barry - O'Reilly Blogger Review

寫程式是有趣的事,能從小小的螢幕在虛擬世界創造大大的樂趣。不管從事什麼樣的工作,會寫程式代表著比不會的人,更能有效率地「當電腦的主人」,能把很多瑣碎的事情交給二十四小時不辭辛勞的機器代勞。

人人都該學程式設計」正在流行,小學、中學生是學寫程式最好的階段,就因為年紀夠小,很容易就會產生濃厚的興趣,從發掘自己創造力的過程中獲得成就感。

認識程式設計的「第一個語言」很重要,學習程式設計的「第一本書」也非常重要。

O'Reilly Head First 向來以圖文並茂淺顯易懂的風格聞名,我常推薦這系列的書給剛入門的朋友,通常也能得到不錯的評價。

「Head First Programming」是一本適合程式設計初學者的書。

這本書使用 Python 語言進行教學,Python 很適合當作入門程式設計的第一個語言,介面精簡易用的 Python IDLE,作為初學者的工具,只要將範例依樣畫葫蘆輸入一次,就能立即看到執行結果。

IDLE 可以很容易在 Windows、Ubuntu Linux 或 Mac OS X 等系統上安裝使用,甚至一台千元有找的微型電腦 Raspberry Pi(樹藍莓)就能執行 Python IDLE。

對程式設計新手來說,阻礙學習的猛獸來自四面八方,複雜的開發工具、看不懂的錯誤訊息或無法修正的BUG,都會不斷累積挫折感。

Python 的語言設計,讓初學者有個良好的規範可以依循,例如在 if-else statement 的區塊中,必須有清楚的縮排,而且程式碼也較為乾淨,少了許多符號的干擾。

Python 可以很容易處理字串,也可以輕易存取網路資料,所以在第二章的內容,作者就安排了取的網頁原始碼加以處理文字的範例。這是相當實際的範例,學會之後也是經常能夠派上用場。

對於一本入門書來說,需要讓學習者用最少的成本,就先學會重要的程式基本邏輯,判斷式、迴圈及函數(副程式)⋯等;但範例又必須讓學習者感覺到「真實」。使用 Python 豐富的套件庫,很多功能可以用簡易的幾行程式碼完成,例如使用 sqlite3 就能示範一個相當真實的資料庫使用範例,也能輕易打造 GUI 視窗程式,或是完成一個互動的小遊戲。

Head First Programming 有將近 400 頁的厚度,但是大量圖片及範例程式碼已占去不少篇幅,以輕鬆的方式閱讀,大約三天就能讀過且實際練習一個章節,總共十個章節大約只要一個月內就能讀完。

如果您想學習程式設計,或是身邊有朋友剛開始入門,不妨試試閱讀這本書吧。

*本文為 O'Reilly Blogger Review Program 新書推薦專欄,若您對此書有興趣請參考線上商店「Head First Programming」。

備註:台灣歐萊禮曾出版本書中文翻譯「深入淺出程式設計」。

2013年12月26日

Web 開發者專用 Internet Explorer 瀏覽器測試虛擬機器,支援 VirtualBox, VMWare Fusion, Hyper-V, Virtual PC, VMWare Player

關鍵字:modern.IE

modern.IE 提供十多種 pre-built virtual machine images,支援的虛擬機器平台包括:
  1. Windows + VirtualBox, Hyper-V, Virtual PC, VMWare Player
  2. Linux + VirtualBox
  3. Mac OS X + VirtualBox, VMWare Fusion, Parallels Desktop
作業系統包括:
  1. Windows XP
  2. Windows Vista
  3. Windows 7
  4. Windows 8
  5. Windows 8.1
瀏覽器包括 IE6, IE7, IE8, IE9, IE10, IE11。

可以幫開發者省下不少建立虛擬機器的時間。

參考資料

2013年12月16日

七款支援即時預覽的線上 Markdown 文件編輯器

Markdown 是易讀易寫的純文字格式,在這些線上編輯器的幫助下,可以呈現預覽精美的文件,甚至可以發佈到部落格或儲存至雲端硬碟。

Markable.in
http://markable.in/

支援 Dropbox 與 Evernote

Dillinger
http://dillinger.io/

支援 Dropbox、GitHub 與 Google Drive

馬克飛象(马克飞象)
http://maxiang.info/

 支援 Evernote

InstantMark
http://jrham.es/instantmark/

Online Markdown Editor
http://www.ctrlshift.net/project/markdowneditor/

StackEdit
https://stackedit.io/

支援 Dropbox 及 Google Drive 儲存、可發佈至 Blogger、Wordpress、GitHub 及 Tumblr

Online Markdown Viewer
http://www.markdownviewer.com/

2013年12月12日

記錄 2013 Retina MacBook Pro 15" 規格攻頂開箱,同場加映 Speck SmartShell MBPR Cover、Befine Keyboard Skin Big

2010 年的 MacBook Pro 13",已陪伴我走過不少風雨,不管上山下海或是在外頭流浪的日子,都少不了這顆蘋果陪伴。雖然規格是很低的 MBP 入門機,處理器是古老的 Core 2 Duo;但是使用上算相當穩定耐用,陸續將記憶體升級至 8GB加裝 SSD 硬碟,也把電池更新,已經算是升級到極限了。

經過三年每天長時間工作的重度使用,這台筆電還是操不壞打不死;但是效能已經完全不敷使用。

最近的工作需要在 IntelliJ IDEA 13 / NetBeans 7.4 環境下開發專案,老筆電不斷哀嚎。大概寫三行程式碼,跑一次 Build 到可以開始執行,要等上三分鐘這麼誇張。這種經驗不是第一次,以前每次幫電腦升級記憶體,都是為了開發 Java 的專案。

年底推出的新款 Retina MacBook Pro 有比較漂亮的價格和更好的規格,終於喚醒心中沈睡已久的小惡魔,開始打著迎接新蘋果筆電的算盤。

在選擇 MacBook Air 或是 Retina MacBook Pro 之間猶豫好一陣子,新款 Air 有超長的待機時間和速度提升的硬碟,超級輕薄的優點也是無可取代;最新款的 RMBP 則有新一代架構的處理器,待機時間有提高一些,效能則有極致的 16GB 記憶體及 1TB PCIe 硬碟。

新筆電至少又會陪伴我下一個三年,為了不要在這三年內又遇到效能瓶頸,我決定盡所能讓它規格到位。於是開始清算手邊僅存的$$,並且先買好整箱泡麵⋯⋯

「MacBook Pro 15 吋:2.3 GHz,配備 Retina 顯示器」只剩兩項硬體規格可以升級,所以攻頂變得很容易,只要點兩下滑鼠左鍵。


順便加購 AppleCare 延長保固,線上商店下單可以自動登記省麻煩;在網拍可以買到價格更低,但是如果有學生或學校教職員身份,從教育商店下單的價差就會比較少。


2013 年的頂級規格 Retina MacBook Pro 15" 筆電,其實能升級的硬體規格只有紅字的兩項啊!

  • 2.6GHz 四核心 Intel Core i7
  • 16GB 1600MHz DDR3L SDRAM
  • 1TB PCIe 快閃儲存
  • Intel Iris Pro Graphics
  • NVIDIA GeForce GT 750M
  • 配備 2GB GDDR5 記憶體
  • 電池 (8 小時)
  • AppleCare 全方位服務專案(保固延長至三年)

保護殼是和筆電一起從蘋果線上商店訂購的 Speck SmartShell。



花好幾天才搞定訂單付款流程。

這筆訂單金額要六位數字,信用卡一直刷不過,兩次收到蘋果來信通知信用卡授權失敗,來回打了好幾通電話,請銀行幫忙調高臨時信用額度,並且人工備註最後才能通過這幾筆海外刷卡交易。


TNT的貨件追蹤顯示從上海寄出,從收到發貨通知到入手只等四天。


新筆電和週邊到齊。


開箱。


盒子納入收藏品倉庫。。。


等待十幾天終於看到新筆電,持續感動。


兩個 Mini DisplayPort 讓這台筆電可以接兩組桌上型螢幕,完全可以取代桌機的工作。


咦⋯居然內建 HDMI 輸出耶!手邊的轉接線可以回收了。


嫁妝。


為了外出工作保持低調,減少旁人前來搭訕⋯筆電,讓 MacBook Pro 與 SmartShell 合體。說真的,加上外殼真是不好看吶!


裝上保護殼還是有必要,尤其是每次爬山露營都還要帶著筆電工作,總會用各種意想不到的角度撞到。


在台灣蘋果線上商店沒辦法客製全英文鍵盤,算是一大敗筆。


只能靠 BEFINE BIG 系列純英文大字母的鍵盤保護膜,除了減少灰塵和食物碎屑掉進鍵盤的實用性,也減少中文鍵盤那些從來不看的注音與倉頡符號干擾。


Speck SmartShell 和機身的密合度非常高。


長時間工作時佩戴的 GUNNAR 光學眼鏡,加上高解析度的 Retina 顯示器,盯著螢幕看文件和程式碼的舒適度提升不少。


工作室的新成員報到,這是我人生中的第五部筆電、第十部電腦。


看到四核八執行緒和用不完的 16GB 記憶體,感動得快哭了。


打開 IntelliJ IDEA 13 的速度,跟舊筆電跑 Sublime Text 3 差不多耶!再次淚崩。。。


就跟人生至少要爬過次玉山、騎過單車環島、看過嘉明湖或當過背包客出國流浪⋯一樣,有些事情現在不做,這輩子就再也不會做了!!!

所以買 MacBook Pro 規格要攻頂也是人生至少要體驗一次,至少在入手的當下和接下來的半天時間是非常開心的啦!

但是在激情過後,就要開始認真工作償還卡債了!這就是現實人生~~

2013年12月11日

IntelliJ IDEA 13 on Ubuntu Linux 13.10 字型美化


Perfect Font Rendering: IntelliJ IDEA 13 on Ubuntu Linux 字型美化指南

Anti-Aliasing Font

(1) Ubuntu FreeType 字型系統 Patch

看習慣 Mac OS X 的字型,再回到 Ubuntu Linux 桌面總會不習慣。主要的差異是 Font Rendering 的效果,讓 Ubuntu 預設的字型看起來過於銳利。裝上 fontconfig-infinality 即可改善。

sudo add-apt-repository ppa:no1wantdthisname/ppa
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install fontconfig-infinality
sudo bash /etc/fonts/infinality/infctl.sh setstyle

最後一道指令要選擇風格,建議用 2 或 4 這兩種其中一個。

Select a style:
1) debug       3) linux       5) osx2      7) win98
2) infinality  4) osx       6) win7      8) winxp

(2) OpenJDK 系統字型 Patch

上個步驟改善 Ubuntu 桌面的字型效果,但是 JDK 並不會乖乖就範。需要加裝 openjdk-fontfix 強制 Java 應用程式採用系統原生字型。

sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
sudo apt-get update
sudo apt-get upgrade

先檢查裝好的 JDK 路徑。
ls -al /usr/lib/jvm

經過 Patch 的版本是 OpenJDK 7,需要找到正確的 JAVA_HOME 路徑。

default-java -> java-1.7.0-openjdk-amd64

可以用 default-java 這個路徑自動連結最新 OpenJDK 版本:

JAVA_HOME=/usr/lib/jvm/default-java

執行 IntelliJ IDEA 之前,先設定 IDEA_JDK 指定開發工具專屬 JDK 路徑。

export IDEA_JDK=/usr/lib/jvm/default-java

上面的設定可以加到 /etc/profile.d/java_home.sh 檔案,日後可以自動套用到每次執行。

(3) 修改 IntelliJ IDEA 字型設定

再來需要修改 JAVA_OPTS 參數,使用 IDEA 的 vmoptions 設定檔是最好的作法。

設定檔位於:

bin/idea64.vmoptions

或(32位元系統):

bin/idea.vmoptions

設定內容範例(紅色字體是字型部份):

-Xms2048m
-Xmx2048m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=96m
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-Dawt.useSystemAAFontSettings=lcd
-Dswing.aatext=true
-Dsun.java2d.xrender=true

修改完成後,就可以看到 Ubuntu 13.10 + IntelliJ IDEA 13 的字型效果幾乎跟 Mac OS X 上執行的水準相當接近。

從下面兩張對照圖,仔細看應該可以看出字型效果的不同之處。對於長時間盯著編輯器工作,一點點差異可是會影響工作的心情呢!

BEFORE


AFTER



使用 IntelliJ IDEA 13 與 Gradle 打造下一個 Java 專案!


對於 Modern Java Development 的需求,例如使用 Spring、Scala、Groovy、Grails、Gradle 或 Maven,以及開發 Android App 等;Eclipse 或 NetBeans 已經顯得有些老態,跟不上時代變化快速的腳步。

IntelliJ IDEA 13 是非常值得一試的 Java IDE,它的開發商 JetBrains 相當具有 Sense,相當瞭解開發者的需求是什麼。

Google 最新的 Android Studio 開發工具,已經捨棄 Eclipse 改用 IntelliJ IDEA。未來我們可以期待 IDEA 成為最強大的 Java IDE 工具,事實上它現在就已經很接近最強大。

IntelliJ IDEA 有分商業付費版與免費社群版(CE)。

要付費一直對喜歡用免費工具的開發者,造成一種心理上的不安。

近年來,拜先進的建置工具如 Maven 及 Gradle 所賜;免費的 IntelliJ IDEA CE 版本,已經足以滿足多數專案的開發需求。

原因是 IntelliJ IDEA CE 對 Maven 與 Gradle 有相當良好的支援,所以在專案中只要使用 Maven 或 Gradle 定義 Build Configuration,不管專案類型是 Android、Spring、Java EE、Java Swing/SWT 等,都可以輕鬆在 IDEA 獲得全面的支援。

這一點跟過去的 Java IDE 很不一樣,從前很多開發者依賴 IDE 提供特殊專案類型的直接支援,例如直接建立一個 Spring MVC 專案,然後依賴 IDE 內建的自動化建置設定。

現代的 Java 專案已經交由先進的建置工具如 Maven 及 Gradle 管理,所以舉凡 Compile、Test、Dependency Management、Package 或 Deploy 等流程,都必須被明確定義在專案的建置設定檔,而不依賴開發工具提供的專屬設定。

這種不依賴開發工具的建置流程,雖然捨棄了一點便利性(無法直接用圖形介面設定);但帶來更多的好處。例如需要加入 Jenkins CI 的持續整合,使用 Maven 或 Gradle 可以得到更一致性的建置流程管理。

最新發行的 IntelliJ IDEA 13 提供更好的 Gradle 支援,以下是一段摘自 JetBrains 官方網誌的說明。

Another key enhancement in IntelliJ IDEA 13 is refined Gradle support, including improved project synchronization, code completion for dependencies and plugins, quick documentation, and code generation. IntelliJ IDEA 13 is even able to configure Web facet and WAR artifacts automatically based on Gradle files. You can take a look at the Gradle support in this video.


關於 Gradle 的教學,推薦閱讀 CodeData 網站由 qrtt1 發表的「認識 Gradle」系列文章,有很精采且易懂的說明。

認識 Gradle」系列文章懶人包。

關於如何用 IntelliJ 開始建立 Gradle 自動建置的 Java 專案,請參考:

2013年11月26日

NetBeans IDE 字型美化 on Ubuntu Linux

NetBeans IDE 在 Ubuntu Linux Desktop 的編輯器,預設字型效果就跟一般 Java 應用程式一樣不太美觀。用習慣 Mac OS X 之後,眼睛對字型愈來愈挑剔,這篇探討怎麼讓編輯器字型看起來舒服一些。

這是 Ubuntu 13.10 + NetBeans 7.4 的預設畫面。


第一個優化是先開啟 Java 程式的字型反鋸齒(AntiAliasing)效果,需要在 NetBeans 的 netbeans.conf 加入以下藍色文字的設定。

$NETBEANS_DIR/etc/netbeans.conf

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd"

在字型的選擇上,可以使用 Google 佛心開放 Droid Sans Mono,可以跨平台使用相同字型,中文字支援也正常。這個字型是 Apache License 可以直接從官網合法下載安裝。

http://www.droidfonts.com/droidfonts/

重新啟動 NetBeans 之後,設定 Font & Colors,這邊使用 Norway Today 佈景主題,搭配 Droid Sans Mono 13 字型設定(已開啟 AA 反鋸齒)。


程式碼編輯區字型效果立竿見影。


 如果要讓不同編輯器都共用相同的精準配色佈景主題,可以再加上 Solarized 的設定。

SOLARIZED Precision colors for machines and people
http://ethanschoonover.com/solarized

GitHub 可以找到 Solarized for NetBeans。

Solarized Dark color scheme, implemented for NetBeans
https://github.com/fentie/netbeans-colors-solarized

這個套件的作者沒有發佈方便安裝的 ZIP 壓縮檔,所以我自己幫他包了一個。

直接下載 Solarized for NetBeans 安裝套件。
https://github.com/lyhcode/netbeans-colors-solarized/releases/download/v1.0/netbeans-colors-solarized.zip

在 NetBeans Options 設定畫面的左下方,用 Import 按鈕選擇下載的 ZIP 檔案。


安裝好重新開啟 NetBeans 後,就可以看到 Solarized 的效果,包含 Dark 及 Light 兩種配色組合;這套佈景預設搭配 Monaco 字型,可以從 Mac OS X 的系統取得這個字型檔。

Solarized Dark


Solarized Light


到目前已經改善程式碼編輯區的字型效果,不過 NetBeans 其它部份還是不好看,主要原因還是歸咎於 JDK 並未使用作業系統原生的 Font Rendering。

為了徹底改善字型效果,找到以下兩個參考文章:

Step 1: BETTER FONT RENDERING IN LINUX WITH INFINALITY

這篇是 Infinality 的安裝,它是 Patch Ubuntu 的 FreeType 函式庫,並且可以選擇偏好的 Font Rendering 效果。

sudo bash /etc/fonts/infinality/infctl.sh setstyle

Select a style:
1) debug       3) linux      5) osx2     7) win98
2) infinality  4) osx      6) win7     8) winxp

安裝設定後,整個 Ubuntu Desktop 的字型效果會有顯著改善,更接近 Mac OS X 的水準。

Step 2: INSTALL OPENJDK PATCHED WITH FONT FIXES [UBUNTU PPA]

這篇是安裝 OpenJDK with Font Patch,它讓 Java Swing 應用程式的字型效果,跟 Ubuntu Linux 其它 Native 應用程式看起來一致。

完成上面兩個步驟,可以看到 NetBeans 在 Ubuntu Linux 的字型顯示,已經完全脫胎換骨。


2013年11月20日

利用 IntelliJ IDEA Community Edition (Free) 輕鬆開發 Gradle / Java 專案

Gradle 是令開發者「再也回不去」的自動化建置工具;過去 Java 的開發者在使用 Ant + Ivy 及 Maven 所遇到的障礙,往往最後還是要依賴 IDE 的 Build 支援,因為傳統 Java 的 XML 設定實在讓人卻步。

Gradle 不僅是設定比 Maven 更容易,最重要的是它的設定本身是 Groovy Script,所以任何 Java 程式能做到事情,在 Gradle 的 Task 中也都能輕鬆做到。開發 Gradle Task Plugin 的難度低,所以在開發過程的日常任務,都可以用更少的時間輕鬆達成自動化建置。

不過在導入 Gradle 工具後,許多 Java 開發者的第一個疑問是?是不是一定要搭配 Console command-line 使用,而必須放棄 IDE 的 Build 功能呢?

回想兩年前,Gradle 使用人口還不多,版本也遲遲未正式推出 1.0,那時候 IDE 對 Gradle 的支援只能用慘字形容。但現在的 Gradle 已經有大幅的進步,而各大 IDE 也持續改善「Gradle 專案」的支援。

目前各大 IDE 的支援狀況:

Eclipse

Spring 官方的開發工具 STS(Spring Tool Suite)是以 Eclipse 為基礎建置的 IDE,所以官方也開發一個 Gradle Integration 工具;如果不想使用 STS,也可以自行利用 Update site 單獨安裝 Plugin 功能。

因為 Eclipse 沒有內建「新增 Gradle 專案」的功能,需要利用 Gradle 內建 Eclipse Plugin 先產生 Java Project Settings,再用 Import Existing Project 的方式匯入。

NetBeans

目前的 NetBeans 可以直接在內建的 Plugins 清單搜尋並安裝 Gradle Support Plugin,就能直接開啟包含 build.gradle 設定檔的專案資料夾。

Gradle 並未提供 NetBeans Plugin,所以在 NetBeans IDE 中建置 Gradle 專案,實際上使用的是 IDEA Plugin。

IntelliJ IDEA

本篇主要介紹 IDEA 的原因,就是它對 Gradle 的支援度最佳,而且功能有持續更新及維護。IDEA 有商業授權版及免費社群版(Community Edition,簡稱 CE),許多 Java 開發者會覺得 Java EE 功能必須商業版才有提供,例如 Grails 等;但 IntelliJ 對開源社群相當友善,處理回應開發者問題及需求的速度也快,目前免費的 CE 就對 Gradle(包括 Android)內建完整功能。

Gradle 本身也內建 IDEA Plugin,它可以用來產生 IDEA 所需的建置設定。但由於 IDEA 對 Gradle 的完善支援,即使沒有先跑 Gradle 產生設定檔,也能在 IDEA 匯入 Gradle 專案時自動產生相關必要設定。

這篇文章將以最新的 IntelliJ IDEA 13(目前還是測試版)為例。

建立 Gradle 專案

在 IDEA 新建 Project,直接選擇 Gradle 專案類型。
Gradle 專案的設定,需要指定 Gradle 來源,有三種模式:(1) default 使用 IDE 內建的 Gradle Wrapper、(2) 使用專案自訂的 Gradle Wrapper、(3) 使用安裝在本地端的 Gradle 版本。
Gradle 內建 Wrapper Plugin,Wrapper 的功能是一個非常棒的設計,它會在專案資料夾產生 gradlew 及 gradlew.bat 兩個執行檔,與一個包含必要 JAR 檔案的 gradle 資料夾。gradlew 是 Linux 及 Mac OS X 適用的 BASH Scirpt,而 gradlew.bat 則是 Windows 的批次檔,所以在沒有安裝 Gradle 的電腦,只要裝有 JDK,仍可以執行 ./gradlew build 來建置專案。

Wrapper 對發佈到 CI(持續整合系統如 Travis 或 Jenkins)來說是非常方便的設計,因為在 CI 上不必先安裝 Gradle 環境,而且每個專案使用的 Gradle 版本可能也有差異,Wrapper 可以指定所用的 Gradle 版本(但必須 > 1.7,因為在這之後才有 Wrapper)。

也就是說,即使電腦沒有先裝 Gradle,在 IDEA 仍可以建置 Gradle 專案,實際上就是由 Wrapper 來處理。

以下是 Gradle 專案新增完成的畫面。


使用 JetGradle 工具

IDEA 12 開始提供內建的 JetGradle 工具,到 IDEA 13 已直接稱為 Gradle tasks,這個工具可以從 View / Tool Windows / Gradle 打開。

JetGradle 的主要功能包含:(1) 列出專案可用的 Gradle Task 指令清單、(2) 重新讀取 Gradle 設定。當 build.gradle 的內容修改,例如增加 dependency 後,就可以利用重新整理按鈕,將依賴的 JAR Library 載入,就能在 Java 程式碼中 import 所需的新類別。


新增 Java 類別

在新建 Gradle 專案的 build.gradle 設定檔,可以看到它已經包含「apply plugin: 'java'」設定,也就是專案已經支援基本的 Java 程式編譯及建置。

預設的 Java 原始碼需要放在「src/main/java」,我們需要先在專案右鍵選單的 New / Directory 手動建立資料夾。


資料夾「src/main/java」新增後,可以看到「java」目錄是不同顏色。


在「java」目錄右鍵選單,選擇 New / Java Class 新增 Java 類別。


寫一個 Hello World 程式碼(com.company.Hello)。


執行程式(Run Task)

Gradle 的 Application Plugin 提供執行 Java 程式的功能,先在 build.gradle 增加以下兩行設定:

apply plugin: 'application'

mainClassName = 'com.company.Hello'


修改後再到 JetGradle 重新載入設定(使用工具視窗左上方的 Reload 按鈕)。


點兩下 HelloGradle 在 All tasks 的「run」任務,開始執行 Run Task(由 Application Plugin 提供;在 build.gradle 設定 mainClassName 指定要啟動的 Startup Class)。

在 IDEA 顯示程式執行結果。


這個動作也等於在 Console 自行輸入「gradle run」或「./gradlew run」的 command-line 指令。


Conclusion

利用 Gradle 豐富的 Plugin,可以建立各種自動化的專案建置流程,團隊開發成員也能各自選擇喜好的開發工具,不再受限 IDE 設定。

由於 build.gradle 明確定義專案參數,例如 dependency library 的版本及來源,如此可以避免過去 Java IDE 經常出現的 trouble,特別是在協同開發時經常發生從 VCS 取得的專案,總是缺少某些設定或無法順利建置。

IntelliJ IDEA Community Edition 無疑是目前與 Gradle 搭配最佳的開發工具,不僅免費且功能十分友善。搭配 Gradle 建置設定,讓 IDEA 幾乎可以勝任各類型 Java 專案的開發,從 Spring MVC、GWT 到 Android 等,不再依賴 IDE 提供特別的專案類型設定。

lyhcode by lyhcode
歡迎轉載,請務必註明出處!