3

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

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

注意:这些步骤通常在我的笔记本中执行,但在我的桌面上我没有成功。然后我在笔记本上创建了一个新用户,它也不再工作了。

任何人都可以帮助我吗?

4

2 回答 2

3

Maven 3.5.2 读写位置不一致。

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

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


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

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


refs: [ARCHETYPE-529] Maven archetype:generate 在交互模式下找不到本地原型 - ASF JIRA

于 2018-02-25T12:22:47.910 回答
0

我有完全相同的问题,并使用 Maven 版本 3.3.9 和 3.5.2 重现了它。mvn install处理方式和mvn archetype:generate处理方式可能不一致archetype-catalog.xml

因为对我也没有任何帮助,所以我创建了一个软链接:

ln -s PATH/TO/.m2/archetype-catalog.xml PATH/TO/.m2/repository/archetype-catalog.xml

这对我来说是个窍门。不幸的是,这只适用于类 Unix 系统。

于 2017-11-01T14:19:47.400 回答