我們知道,在Grails項目中使用Grails類創建工具如“grails create- domain-class”等,能幫我們創建domain、service和controller等類及它們的 測試類及其他。因此,我們在Grails項目中常常是使用這些工具幫我們創建各種 類,而不是直接動手去創建它們。前面,我們已經動手將Grails項目集成到了 Eclipse裡來,那麼,在Eclipse開發平台上,我們又該如何創建這些對象呢?
在Grails官方網站上,對此有一段說明,詳細的描述了如何在Eclipse上使用 這些工具,我將這段內容貼在下面:
你可以將grails配置為一個外部工具(External Tool), 然後就可以創建域對 象了,在eclipse裡:
1.選擇"Run > External Tools > External Tools...";
2.輸入一個名字,例如:Grails;
3.在文件系統裡找到grails.bat(或者*nix下的grails);
4.將工作目錄設置為 ${project_loc};
5.參數設置為 ${string_prompt};
6.在Refresh這個tab裡設置"Refresh resources upon completion"為 "project containing the selected resource";
7.在Common裡, 在 "Display in favorites menu"裡選中
現在你可以選擇External Tool後面的下拉按鈕(就是比運行多一個小箱子的 那個圖標),選擇Grails,例如:
1.在External Tools的下拉列表裡選擇 Grails ;
2.在彈出的對話框裡輸入create-domain-class ;
3.在控制台窗口中根據提示完成命令;
4.在grails-app/domain中打開新創建的類。
上面的藍色字體的這段話,以創建一個domain類為例子,詳細的說明了如何 使用Eclipse工具來創建Grails項目的各種類。
但是,上面的工作仍然是粗糙的,因為我們要創建一個domain類或者其他的 類,需要四步左右才能完成:
第一步是選擇“Grails”按鈕
第二步是輸入“create-domain-class”命令
第三步是輸入例如“User”這樣的類名
第四步點擊“ok”
基於這樣的原因,我對上面的工具進行了改造。
首先,我需要一個“create-domain-class”按鈕,而不是簡單的“Grails” 按鈕,這樣,我點擊“create-domain-class”按鈕,它能直接為我生成domain 類。工具的創建步驟如下:
1選擇"Run > External Tools > External Tools...";
2輸入一個名字,create-domain-class;
3在文件系統裡找到grails.bat(或者*nix下的grails);
4將工作目錄設置為 ${project_loc};
5參數設置為create-domain-class ${string_prompt};
6在Refresh這個tab裡設置"Refresh resources upon completion"為 "project containing the selected resource";
7在Common裡, 在 "Display in favorites menu"裡選中
可以看到,與官方提供的方法不同在於紅色標出的第二步和第五步。如下圖 :
這樣,我們需要創建一個domain類的話,只需要下面的步驟:
第一步是點擊“create-domain-class”按鈕
第二步是輸入“User”類名
第三步是點擊“ok”
這樣就不需要我們去記憶那些“create-domain-class”或者“create- service”或者其他命令,同時也為我們省了一個步驟。
同樣的方法,我們可以生成“create-service”命令、“create-controller ”和“generate-all”等命令。
通過上面的方法,我們已經在Eclipse平台將Grails命令做了一個簡化,但是 仍然不能滿足我的要求。因為在我們實際的項目中,我們需要將形如“User”這 樣的類放在一個個包裡,如“com.windflower.oa.login”這樣的包。
在Grails的官方網站,告訴我們,使用“create-domain-class”命令生成“ User”類以後,將該類轉移到形如“com.windflower.oa.login”這樣的包裡。 這樣的方法顯然是有點復雜了。我們也可以通過上面的Eclipse工具來給我們幫 忙:
1選擇"Run > External Tools > External Tools...";
2輸入一個名字,create-domain-class;
3在文件系統裡找到grails.bat(或者*nix下的grails);
4將工作目錄設置為 ${project_loc};
5參數設置為create-domain-class com.windflower.oa.${string_prompt};
6在Refresh這個tab裡設置"Refresh resources upon completion"為 "project containing the selected resource";
7在Common裡, 在 "Display in favorites menu"裡選中
可以看到,與上面的方法不同在於紅色標出的第五步,在第五步裡加入了包 名。這樣,我們使用如下的步驟創建帶包名的類了:
第一步是點擊“create-domain-class”按鈕
第二步是輸入“login.User”類名
第三步是點擊“ok”
這樣就可以生成“com.windflower.oa.login.User”類了。
同樣的方法,我們可以生成“create-service”命令、“create-controller ”和“generate-all”等命令為各種類帶上包名。