我试图使用自己的项目模板,但是当我执行命令时:
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 但是在debug(mvn archetype:生成-DarchetypeCatalog = local -X),maven搜索 path / .m2 / repository / archetype-catalog.xml
中的xml文件注意:这些步骤通常在我的笔记本中执行,但在我的桌面上我没有成功。然后我在笔记本上创建了一个新用户,它也不再有用了。
有人可以帮助我吗?
答案 0 :(得分:1)
Maven 3.5.2在读写之间的位置不一致。
在settings.xml
中设置localRepository
后,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
。
答案 1 :(得分: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系统。