前言: 遇到问题后,首先,在网络上查找答案。结果告诉我,让我重启IDEA,可是我使用的是CMD命令行,根本没有使用IDEA。或者,告诉我如何操作,却没有解释问题发生的根本原因。于是,我只能去查阅相关文档,最终清楚了问题的原因及其解决方法。
一 、问题发生
在Windows 10系统的命令行窗口中,使用命令
mvn archetype:generate
(Maven version: 3.6.3)生成项目模板时,出现了,如下图所示的警告:
警告信息【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)
输出信息有很多,截取关键部分,如下图所示:
从我配置的阿里云镜像仓库中查找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的更加深入的理解】