idea使用Maven自定义脚手架生成项目问题记录
问题说明
工作需要,有同事编写了一个自定义的maven脚手架,其他人可以依据这个脚手架自动生成项目,可以快速的创建项目。但是再使用脚手架的时候遇到了问题,在使用mvn命令生成项目的时候,可以正确快速的生成项目,但是在使用idea直接生成的时候遇到了问题。问题如下:再使用idea自带的maven-archetype 生成的时候报原型项目不存在
点击生成的时候报错:Could not find artifact com.hcfc:my-test-product:pom:1.0.1 in HcfcNexus
一直报找不到,但是maven仓库中这个jar包其实是存在的。
解决方法
使用远程仓库中原型
看报错,再仓库中找不到jar包,但是实际仓库中jar包已经存在,那只能是创建的时候,idea使用的settings文件没有指定到要使用的maven私服地址,大概率是maven配置的问题。所以先配置一下idea的全家maven配置,注意这里一定要先配idea的全局maven,选择和你maven私服对应的settings文件。否则还是会报找不到包。
配置方法如下:
使用远程nexus仓库的archetype创建项目的时候,必须在自己的maven conf 下settings.xml加入以下配置:主要是标签里边的
<profile>
<!-- the profile id is arbitrary 这个id是任意填的-->
<id>my_archetype</id>
<repositories>
<repository>
<!-- 这repository Id必须是archetype -->
<id>archetype</id>
<name>my archetypes</name>
<url>http://test.product.com:8081/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
<checksumPolicy>fail</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<checksumPolicy>warn</checksumPolicy>
</snapshots>
</repository>
</repositories>
</profile>
配置好以后,重新去idea的maven-archeytype生成项目,发现可以成功了。
使用本地仓库的自定义脚手架
要使用本地的,首先是这个jar包要在本地的仓库中。
核对本地仓库中是否有archetype-catalog.xml 文件,文件中放的是所有原型项目的坐标信息。
如果没有在仓库地址中执行一下命令,生成一个本地的archetype-catalog.xml 文件
mvn archetype:crawl (前提是本地仓库中有这个原型的jar包)
ideal中配置:
新增的配置,目录一定要指定到archetype-catalog.xml文件
新增后,选择新增的配置
可直接选择要使用的原型,
会自动带出变量,点击create,即可生成项目。