Maven 3 - 无法找到原型

时间:2016-02-28 06:39:06

标签: maven archetypes

我创建了一个自定义原型customA-web-archetype。在项目文件夹customA-web-archetype中,我运行了mvn clean install archetype:update-local-catalog,这是成功的。现在,当我在文件夹外运行mvn archetype:generate -DarchetypeCatalog=local以使用原型时,我收到以下错误:

[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)

仅供参考 - 当我设置Maven时,我将.m2移动到另一个目录而不是使用默认的主目录。我对settings.xml进行了适当的更改,以便它可以在更新的目录结构中找到.m2。

我没有使用像Nexus这样的任何回购经理。只是当地的m2回购与原型项目位于同一个盒子上。

3 个答案:

答案 0 :(得分:3)

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

您应该使用自己的参数尝试以下命令:

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

答案 1 :(得分:2)

从Maven 2升级到3后,我们发现了同样的问题。修复是在archetype pom中将archetype-packaging和maven-archetype-plugin的版本从2.2更改为3.0.0。

我看起来像maven将它的原型存储库文件的位置从〜/ .m2移动到〜/ .m2 / repositories,这就是为什么生成没有找到它。

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

mvn archetype:generate 

它没有显示我当地的原型,但是如果我做了

mvn archetype:generate -DarchetypeCatalog=local 
它出现了。希望这会有所帮助。

答案 2 :(得分:1)

您是否尝试抓取回购以创建目录?也许它丢失/坏了? Archetype插件具有抓取目标,该目标解析repo并创建catalog.xml。

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