2011-11-19 18 views
40

我是Maven新手,正在使用maven.apache.orgtutorial here作爲介紹。如何使用maven-archetype-plugin創建項目?什麼是artefactId等?

在教程的「?如何讓我的第一個Maven項目」部分,它教導我們通過執行以下命令來生成一個Maven原型項目:

mvn archetype:generate 

後Maven的下載很多文物,它突然停下來問以下問題在命令行上:

Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 149: 

Apache的教程不描述這個提示。

我有兩個問題:

什麼是上面要求的問題?應如何回答以使mvn archetype:generate過程繼續?

2.傳統上,人們是否使用mvn archetype:generate來創建Maven項目?

--------------更新---------------------

對於我第一個問題,我沒有輸入任何值按下「輸入」,並得到以下輸出:

Choose version: 
1: 1.0-alpha-1 
2: 1.0-alpha-2 
3: 1.0-alpha-3 
4: 1.0-alpha-4 
5: 1.0 
6: 1.1 
Choose a number: 6: 

那是什麼?

我在上述情況下輸入「1」,然後我得到了以下幾件事:

Define value for property 'package': : : 
Define value for property 'groupId': : 
Define value for property 'artifactId': : 
... 

我如何定義呢?

回答

4

它會問你想用哪種原型來爲你的項目播種。如果您在該提示處按「enter」,它會給您一個可用選項的列表。您可以使用maven-archetype-quickstart來創建一個簡單的項目(它可能會提示您在此之後選擇一個存儲庫,在這種情況下,只需輸入與輸入後列出的第一個存儲庫對應的編號)。

要回答您的其他問題:是的,使用原型是設置新項目的常用方法。主要是因爲各種項目/模塊都有大量的原型。一旦你知道了你想要的原型,用它來引導一個項目是最簡單的入門方法。

+0

@克里斯,請檢查我的更新在我的帖子,我按下輸入,但得到了奇怪的輸出。他們是什麼? – Mellon

+0

這些是版本庫中可用的原型的版本。除非你有其他的令人信服的理由,否則你應該使用最新版本(在這種情況下,版本爲1.1) – Chris

+3

您可以使用'ineractiveMode = false'開關關閉所有提示。嘗試'mvn archetype:生成-DgroupId = com.mycompany -DartifactId = someProject -DinteractiveMode = false'。希望有所幫助。 –

39

mvn archetype:generate命令用於從現有模板創建項目。有許多開發人員和項目組定義了幾種原型。當你運行命令時,maven會做以下事情:

  1. 下載maven-archetype-plugin的最新版本。
  2. 列出可用於從中創建項目的所有原型。如果您在調用該命令時定義了原型,則maven跳轉到第4步。
  3. 默認情況下,maven選擇maven-archetype-quickstart原型基本上創建一個maven Hello World項目與源和測試類。如果你想創建一個簡單的項目,你可以按回車繼續。如果你想創建一個特定類型的應用程序,你應該找到與你的需求相匹配的原型並輸入該原型的編號,然後按回車鍵。例如。如果你想創建一個webapp項目,你可以輸入153(這是這個原型的當前編號,它可以及時更改)。
  4. 由於原型是模板,它們打算反映當前的最佳實踐,它們可以演化爲時間,因此他們有自己的版本。 Maven會問你想使用哪個版本的原型。默認情況下,maven爲你選擇最新版本。所以如果您同意使用最新版本的原型,只需在此步驟按Enter即可;
  5. 每個maven項目(和模塊)都有其groupId,artifactId和版本。然後,Maven將通過三個步驟向你提出這些問題。 groupId:這在組織或項目中通常是獨一無二的。 artifactId:artifactId通常是項目已知的名稱。版本:這是命名拼圖的最後一塊。(read more
  6. 最後,maven會問你代碼的包結構。最佳做法是創建反映groupId的文件夾結構,因此Maven將其設置爲默認值,但您可以自由更改此設置。

輸入這些信息後,Maven會向您顯示您輸入的所有信息並要求您驗證項目創建。如果您按Y然後輸入,那麼您的項目將使用您選擇的工件和設置創建。

您還可以閱讀maven-archetype-plugin的使用網站。

1

快速瀏覽一下教程,您省略了原型的一些參數:generate命令。這就是爲什麼它不知道選擇哪個原型來生成你的教程項目並向你展示所有可用的原型(149)。

第一個問題:按回車,然後你接受了原型插件的建議,並選擇#149.這個原型退出不同的版本,通常,如Chris所述,可以選擇最新的 - 這裏是1.1。

第二個問題:由於原型是一種可以爲您節省大量工作的模板:是的,這很常見。但不是唯一的方法 - 你總是可以從一個空的項目開始。

0

您也可以使用簡寫形式

mvn archetype:generate -Dfilter=org.example.group:example-artifact 

甚至只有一組:

mvn archetype:generate -Dfilter=org.example.group: 

您將獲得以下神器(在第一種情況下),如果它在任何配置的目錄存在:

<groupId>org.example.group</groupId> 
<artifactId>example-artifact</artifactId> 

或者如果有多個候選人,你會得到多個建議。所以你必須通過輸入在選擇列表中顯示的索引來選擇它們。

諮詢maven website瞭解更多!

相關問題