我创建了一个自定义原型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回购与原型项目位于同一个盒子上。
答案 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.