解决IDEA创建Maven项目的常见问题:No archetype found

Maven为我们提供了archetype,archetype可以方便的生成项目模板,并根据该模板来生成项目。

Archetype是什么?

我们可以将Archetype理解成Maven项目的模板,通过Archetype,我们可以快速生成项目框架。也可以简单的理解为模板工具类,通过archetype我们可以快速的生成项目的基本架构。比如我们使用idea创建一个maven web项目时,常常会选择maven-archetype-webapp模板来初始化项目,使用maven-archetype-webapp生成的项目中包括webapp目录,里面包含web的配置文件等。


根据ArcheType模板创建项目

在使用IntelliJ IDEA创建Maven项目时,选择一个Maven项目模板,出现如下异常信息:


No archetype found in remote catalog. Defaulting to internal catalog

Archetype not found in any catalog. Falling back to central repository.

Add a repository with id 'archetype' in your settings.xml if archetype's repository is elsewhere.

大概意思是:在远程目录中没有找到archetype,默认使用internal目录。


问题分析和解决办法

这个问题一般是因为创建项目时需要从网络上下载一个 archetype-catalog.xml 文件,如果网络情况不理想很容易卡在这一步。这一问题可以通过调整 archetypeCatalog 参数来解决。这一参数可以为 internal,local,remote:

  • internal:读取maven-archetype-plugin内置的 archetype-catalog.xml 文件;
  • local:读取本地文件,位置为~/.m2/archetype-catalog.xml;
  • remote:默认,指向Maven中央仓库的Catalog。其确切的地址为:https://repo1.maven.org/maven2/archetype-catalog.xml,注意一定要采用https,这个文件有12M多。

参考如下步骤进行设置:

(1)打开 IDEA,点击File->New Projects Settings->Preferences for New Projects… 菜单项,如图所示:


(2)在弹出窗口中,选择左侧的Maven/Runner配置页面,在Runner页面的VM Options添加:-DarchetypeCatalog=local,点击Apply,点击OK。


(3)下载archetype-catalog.xml文件

到Maven中央仓库下载该文件:https://repo1.maven.org/maven2/archetype-catalog.xml【注意一定要使用https协议】

将下载完成的archetype-catalog.xml 文件放在本地的.m2/repository(本地仓库)目录下,具体本地仓库地址可以在IDEA中查看。


如图所示,archetype-catalog.xml 放置在本地仓库(.m2/repository)中。


这样,我们在使用IDEA创建maven项目时,不会从网络下载catalog文件,通过前面设置archetype的使用方式为local,读取本地文件,位置为~/.m2/archetype-catalog.xml。

下图是我们正常创建Maven项目的截图。

(此处已添加圈子卡片,请到今日头条客户端查看)
举报
评论 0