2013年12月27日 星期五

整合 Maven 與 Yeoman, 學習筆記(2) - 使用 mvn archetype:generate 建立 JAX-RS / Jersey 專案

建立整合專案時, 可以使用 Maven 的 template 機制, 建立需要的專案架構. 這時候可以執行 mvn archetype:generate 指令, 從中選取適合的範本. 執行該指令時, 若不指定 filter 或 archetypeGroupId 及 archetypeArtifactId 參數, 會進入 interactive mode, Maven 會列出在中央倉庫中所有的 archetypes, 目前有 800 多個範本可選.

建立 JAX-RS / Jersey 專案

根據 Jersey - Download 的說明, 可以執行 mvn archetype:generate 指令:


  mvn archetype:generate \
            -DarchetypeGroupId=org.glassfish.jersey.archetypes \
            -DarchetypeArtifactId=jersey-quickstart-webapp \
            -DarchetypeVersion=2.5


快速建立 jax-rs web app. 由於省略 -DarchetypeVersion=2.5 參數時, Maven 會自動選擇最新的版本, 所以其實只需要這樣:


  mvn archetype:generate \
            -DarchetypeGroupId=org.glassfish.jersey.archetypes \
            -DarchetypeArtifactId=jersey-quickstart-webapp


若是不想進入互動模式, 也可以直接指定 groupId, artifactId, version, package 參數, 然後指定 -DinteractiveMode=false 參數, 進入 batch mode, 譬如:


  mvn archetype:generate \
            -DarchetypeGroupId=org.glassfish.jersey.archetypes \
            -DarchetypeArtifactId=jersey-quickstart-webapp \
            -DgroupId=com.github.myapp \
            -DartifactId=myapp \
            -Dversion=1.0.0-SNAPSHOT \
            -Dpackage=com.github.myapp \
            -DinteractiveMode=false


自行建立 archetype

若經常需要重複建立類似的專案, 也可以考慮自行建立 archetype. 等有空的時候再來試試看.

參考文件: Guide to Creating Archetypes.

後記

Yeoman 的 GETTING STARTED WITH YEOMAN 文件上說:

On Windows, we suggest you use an improved command line tool such as Console2 or PowerShell to improve the experience.

但我使用 Windows PowerShell 來執行指令:


  mvn archetype:generate
            -DarchetypeGroupId=com.sun.jersey.archetypes
            -DarchetypeArtifactId=jersey-quickstart-webapp


會出現錯誤訊息:

The goal you specified requires a project to execute but there is no POM in this directory

後來發現把參數用引號刮起來, 像這樣:


  mvn archetype:generate
            "-DarchetypeGroupId=com.sun.jersey.archetypes"
            "-DarchetypeArtifactId=jersey-quickstart-webapp"


才能正確執行. 由於不熟 PowerShell, 暫時還不清楚原因. 目前還是使用 cmd 來建置專案.

歡迎大家的回饋與心得分享.

相關文章:

參考文章:

2013年12月18日 星期三

整合 Maven 與 Yeoman, 學習筆記(1) - node_modules

如同 Java 可以使用 Maven 來幫助專案開發自動化, 管理程式庫的依賴關係及下載等瑣碎的維護問題, 使用 Yeoman(Yo/Bower/Grunt) 可以輔助 Web Front-End 自動化開發, 減少人工勞動容易發生的失誤.

這一系列筆記, 將記錄整合及學習 Maven / Yeoman 的過程中所遇到的各種問題, 疑惑, 注意事項及各種使用到的附加元件. 目標是整合 Maven 及 Yeoman, 建構從 Back-End 到 Front-End 一致的自動化專案建構架構.

這一篇記錄的, 是關於 node 模組依賴關係的問題.

2013年11月27日 星期三

GTD - Getting Things Done - Principle and Practice 原理與實踐

簡介

本文是個人學習『GTD (Getting Things Done) 時間管理』的體會與心得整理。

2013年11月11日 星期一

『Pomodoro Technique - 蕃茄時鐘工作法』原理與實踐

簡介

本文是個人學習『Pomodoro Technique - 蕃茄時鐘工作法』的體會與心得整理。