2016-02-28 75 views
2

我創建了一個自定義的原型customA-web-archetype。在項目文件夾customA-web-archetype中,我運行了mvn clean install archetype:update-local-catalog,這是成功的。現在,當我運行mvn archetype:generate -DarchetypeCatalog=local的文件夾以外使用的原型,我收到以下錯誤:Maven 3 - 無法找到原型

[INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0) 

Choose archetype: 


Your filter doesn't match any archetype (hint: enter to return to initial list) 

FYI-當我設置的Maven,我搬到了.m2目錄到不同的目錄,而不是使用默認主目錄。我對settings.xml進行了適當的更改,以便它可以在更新的目錄結構中找到.m2。

我沒有使用任何回購管理器,如Nexus。只是當地的m2回購與原型項目坐在同一個箱子裏。

回答

2

要運行archetype命令,您需要指定您的原型的groupId,artefactId和版本以及未來maven項目的版本。

你應該試試下面的命令,用自己的參數:

mvn archetype:generate -DarchetypeCatalog=local -DarchetypeGroupId=yourArchetypeGroupId -DarchetypeArtifactId=yourArchetypeArtifactId -DarchetypeVersion=yourArchetypeVersion -DgroupId=projectGroupId -DartifactId=projectArtifactId -DinteractiveMode=false 
+0

「mvn archetype:generate -DarchetypeCatalog = local」應該列出本地創建的原型,我應該能夠選擇一個。雖然它在當地的回購中,但它找不到任何地方。它只會列出遠程原型。你知道爲什麼嗎? – Coffeenator

+0

我同意我也有這個問題。解決方法是在.m2存儲庫(或您自己的本地maven存儲庫)下的archetype-catalog.xml文件中定義您的原型,但我不確定它非常漂亮。 –

+0

我遇到了同樣的問題,我正在尋找的原型位於archetype-catalog.xml文件中。另外,mvn archetype:generate -DarchetypeCatalog = file://home/ses44/.m2/archetype-catalog.xml不起作用 –

1

您是否嘗試過爬行回購創建目錄?也許它缺少/損壞? Archetype插件具有爬網目標,它解析回購並創建catalog.xml。

mvn archetype:help 
[... snip ...] 
archetype:crawl 
    Crawl a Maven repository (filesystem, not HTTP) and creates a catalog file. 
2

從Maven 2升級到3之後,我們發現了同樣的問題。解決的辦法是在原型pom中將原型包裝和maven-archetype插件的版本從2.2更改爲3.0.0。

我看起來像maven將它的原型庫文件的位置從〜/ .m2移到〜/ .m2/repositories,這就是爲什麼generate沒有找到它。

一個奇怪的行爲,我仍然看到的是,如果我只是做

mvn archetype:generate 

它不顯示我的本地原型,但是如果我做了

mvn archetype:generate -DarchetypeCatalog=local 

它顯示了。希望這可以幫助。