JBoss想把原本免錢的Hibernate改成商業框架謀利,在官方網站聲明Free凍結到3.2.6.ga版本,作法上無可厚非。而發行Eclipse的Maven plugin-M2Eclipse的廠商Sonatype手段不光明到讓我首次對IT爆粗口。
M2Eclipse到最新的0.10.0版還是Free,但從Run Configuration自訂Maven Build功能卻失去作用了。在0.9.9、0.98版,可以自訂mvn jetty:run的command,而到0.10.0不管怎麼訂都失去作用,而且連舊版plugin站台都拿掉了。而且還有以下功能也失去。
在Base directory欄位輸入${project_loc}會出錯,如下:
base directory doesn't exist or can't be read。
其次,點選Goals欄位右邊的[Select…]彈出Goals視窗,可選擇goal的作用也失去,出現No available.的紅字錯誤訊息。
分別看裝有舊新版的M2Eclipse的Eclipse目錄,有個artifacts.xml的檔案,應該是Equinox存取Maven之用,0.10.0版和0.9.9版的artfiacts.xml有關Maven IDE內容設定內容差別甚大,無法列舉。
後來靈機一動,使用新版M2Eclipse去import舊版的workspace。結果,mvn jetty:run在Maven Build的設定居然可以work,雖然上述Goals [Select…]還是不能用,只能手動輸入Goals內容:jetty:run。
import舊版workspace,有變化的地方在workspace/.metadata/.plugins/org.maven.ide.eclipse/nexus目錄。在舊版的workspace只有local和central子目錄;而在新版workspace則有一到數個長像這種e7df7de7c6d21604c0c6d6ee888294ae亂碼的子目錄,沒有什麼local和central。而在新版workspace目錄貼上來自舊版的local和central目錄。在M2Eclipse 0.10.0就可以執行自訂的Maven Build了。
我不太相信這是Bug,反而覺得是Sonatype有些故意,只提供預定的Goal可以使用,明顯證據是拿掉舊版plugin站台,只提供單一版本0.10.0。若有人一開始才踹M2Eclipse 0.10.0版,沒有以前版本的,那真的衰小,別想玩自訂Maven Build。還害我花了半天才了解這個環節。呿!