我正在尝试使用自己的项目模板,但是在执行命令时:

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)
Choose a number or apply filter (format: [groupId:]artifactId, case-sensitive contains): :


我尝试了在这里找到的许多可能的解决方案,但没有成功...

我的步骤:-我在eclipse中创建了一个项目-然后转到该项目的根目录,并在提示符下执行了以下命令:

mvn archetype:create-from-project


并取得了成功。



然后我在项目的文件夹上执行了以下命令

mvn install


并成功建立



我检查了.m2文件夹,并在那里找到了archetpe-catalog.xml:

<?xml version="1.0" encoding="UTF-8"?>
<archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"
    xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <archetypes>
    <archetype>
      <groupId>io.openbdt</groupId>
      <artifactId>framework-openbdt</artifactId>
      <version>1.0</version>
      <description>framework-openbdt</description>
    </archetype>
  </archetypes>
</archetype-catalog>


在maven的文档中解释说archetypeCatalog = local的默认路径是path / .m2 / archetype-catalog.xml,但是在调试时(mvn archetype:generate -DarchetypeCatalog = local -X),maven在path / .m2 / repository中搜索xml文件。 /archetype-catalog.xml

注意:这些步骤通常在笔记本中执行,但是在我的台式机上却不成功。然后,我在笔记本上创建了一个新用户,该用户也不再起作用。

有人可以帮我吗?

最佳答案

Maven 3.5.2在读写之间的位置不一致。

localRepository中设置settings.xml时,mvn archetype:generate -DarchetypeCatalog=local命令读取${localRepository}/archetype-catalog.xml

如果未设置localRepository,则该命令读取~/.m2/archetype-catalog.xml



mvn archetype:update-local-catalog命令使用~/.m2/archetype-catalog.xml v2.4创建maven-archetype-plugin

该命令使用v3.0.1创建${localRepository}/archetype-catalog.xml



参考:
[ARCHETYPE-529] Maven archetype:generate does not find local archetypes in interactive mode - ASF JIRA

10-04 22:45