2016-02-28 112 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 

它显示了。希望这可以帮助。