天天看点

[WARNING] No archetype found in remote catalog. Defaulting to internal catalog(已解决)一 、问题发生二、问题解决

前言: 遇到问题后,首先,在网络上查找答案。结果告诉我,让我重启IDEA,可是我使用的是CMD命令行,根本没有使用IDEA。或者,告诉我如何操作,却没有解释问题发生的根本原因。于是,我只能去查阅相关文档,最终清楚了问题的原因及其解决方法。

一 、问题发生

在Windows 10系统的命令行窗口中,使用命令

mvn archetype:generate

(Maven version: 3.6.3)生成项目模板时,出现了,如下图所示的警告:

[WARNING] No archetype found in remote catalog. Defaulting to internal catalog(已解决)一 、问题发生二、问题解决

警告信息【No archetype found in remote catalog. Defaulting to internal catalog】

在远程目录中没有发现原型(项目模板),默认设置为内部目录(即maven-archetype-plugin 插件内部的目录)

上面提及的目录catalog,本质上是xml文件,其配置信息记录了原型的相关信息,其名字一般为archetype-catalog.xml,根据使用范围,可以分为三类:

  • remote catalog 远程目录 位于中央仓库(https://repo1.maven.org/maven2/archetype-catalog.xml)
  • local catalog 本地目录 默认位于~/.m2/archetype-catalog.xml,自定义的原型可以放在这里
  • internal catalog 内部目录 位于插件maven-archetype-plugin内部

二、问题解决

运行命令

mvn archetype:generate -X

,参数-X可以输出debug级别的信息。(-X,–debug Produce execution debug output)

输出信息有很多,截取关键部分,如下图所示:

[WARNING] No archetype found in remote catalog. Defaulting to internal catalog(已解决)一 、问题发生二、问题解决

从我配置的阿里云镜像仓库中查找archetype-catalog.xml,没有找到该文件。访问该链接http://maven.aliyun.com/nexus/content/groups/public/archetype-catalog.xml,也无效。这个问题是因为我配置了镜像仓库,并且镜像仓库中不包含archetype-catalog.xml文件导致的

那么,问题的答案也就出来了。

解决方案:运行mvn archetype:generate时使用默认的中央仓库(即删除或者不配置镜像仓库),创建好项目模板后,再配置镜像仓库获取依赖及插件。

其实,这个警告对使用maven命令创建项目没有任何影响。也许,你和我一样,对错误或者警告信息有强迫症,很想知道其原因,到这里就OK了。另外,如果你想使用的模板在internal catalog,即插件提供的模板中不存在,你可以把【https://repo1.maven.org/maven2/archetype-catalog.xml】在浏览器中打开该文件,右键另存到你用mavne用户目录,默认是~/.m2/中,这样,你就可以获得上千个项目模板链(运行mvn archetype:generate 默认先从中央仓库,然后是插件内部,最后是本地仓库中扫描项目模板目录)。以上的解决方案,只是让警告不出现而已,现实世界里开发项目,应该把该文件拷贝到本地(如果需要的话),虽然依然会出现警告,不过对于正常使用来说,没有任何问题。

如果有用,希望大家可以点赞,评论,发表看法!

相关文章推荐

Maven自定义项目模板【推荐理由:对于archetype-catalog.xml的更加深入的理解】