近段重构新潮来临,加上微服务的推广,新建项目难免频繁,就花了点时间搭建项目脚手架。
主要利用Maven的maven-archetype-plugin
插件完成。这不是重点,本篇主要是记录下踩的几个坑:
- window环境下找不到mvn命令;
- 终端maven命令和idea自带插件操作对应的本地仓库不一致问题;
- archetype项目版本号带snapshot,导致部分xml出现问题。
找不到mvn命令
当项目目录结构完善,基础依赖包版本等都处理好,中间件也都整合完成。点击idea》maven》archetype:create-from-project,进行脚手架创建。
出现如下错误:
Caused by: org.apache.maven.plugin.MojoFailureException: Error configuring command-line. Reason: Maven executable not found at: D:\tools\apache-maven-3.3.9\bin\mvn.bat
排查过程:
尝试终端使用命令mvn -e archetype:create-from-project
,还是一样的报错(找mvn命令不同,因为我环境变量mvn命令是自装,ide是使用自带,两版本号一致)。
家里是macos,一样的搭建过程,没有问题。就是公司的出现异常。
看了报错的路径mvn命令是存在的。纠结~
!!!注意,提示是找不到mvn.bat
,而两个目录中没有这个文件只有mvn.cmd
。好吧大意了。
处理方式
在对应提示错误路径下,将
mvn.cmd
复制一份并重命名为mvn.bat
。
archetype安装并引入ide后,使用该脚手架创建项目报错
上面步骤执行完mvn -e archetype:create-from-project
,命令在对应目录执行mvn install
,提示本地安装成功。
然后在idea中添加archetype,版本信息和pom.xml一致。
根据新添加的archetype来创建新项目,终端报错(没有留下日志记录),大致就是找不到该版本的archetype包。
排查过程
到对应本地仓库路径,脚手架包是存在的。版本也没问题。
难道是安装出现问题?
!!!拍了两下脑袋,就是安装的问题。
!!!我又忘了,那个坑,自装maven和ide内置的maven。
处理方式
- idea改为使用自带maven或自带maven的本地仓库路径改成idea内置maven一致。
建议:平时偷懒使用插件傻瓜式操作maven,但保证配置两边调整一样,这样避免在使用自装maven时绕弯路。
(终端使用自装maven和内置maven本地仓库路径不一致,其中一个install,另一个肯定使用不到)
archetype项目版本号带snapshot,导致部分xml出现问题
根据脚手架创建项目后,编译运行发现一堆xml报错,其中都是相关版本1.0-snapshot,手动把每个报错文件-snapshot
去掉即可。
没有去看根本原因,不过脚手架的版本号在不要携带snapshot,就不会出现该问题。