Maven是我一直用来管理Java项目生命周期的工具,从2006年开始使用,到现在快十年了。没想到今天碰到一个新的问题,就是使用 mvn artchetype:create
来创建项目时失败了。
问题如下:
Maven命令如下:
mvn archetype:create \ |
错误提示如下:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.4:create (default-cli) on project bluebrid: Unable to parse configuration of mojo org.apache.maven.plugins:maven-archetype-plugin:2.4:create for parameter #: Cannot create instance of interface org.apache.maven.artifact.repository.ArtifactRepository: org.apache.maven.artifact.repository.ArtifactRepository.<init>() -> [Help 1] |
从错误提示来看,应该是maven-archetype-plugin-2.4
这个版本的插件没有create
这个参数了。
去Maven的官网的plugin list中查看,原来archetype这个插件在2015年8月9号更新到2.4的版本,那再继续看看archetype插件有了什么新的变化。
原来artchetype已经没有create这个方法了,现在推荐方式是先建立自己的Example project,然后通过这个example project为例子,再创建实际你要用的项目。
基本的流程就像这幅图中描述的。
OK,那我们就按照官方的指示来操作一次看看。
$ mvn archetype:create-from-project |
那还有没有别的简单的方法来创建,就像之前使用archetype:create一样呢?
你可以使用下面的命令来进行创建项目。
mvn archetype:generate \ |
不过,这样创建项目,你会发现在如下两个点要等N长的时间,这个N长的时间可能要以几十分钟来计算。
[INFO] Generating project in Interactive mode
[INFO] Generating project in Batch mode
其实你可以再加上两个参数 -DinteractiveMode=false -DarchetypeCatalog=internal
可以让你快速秒建项目。
这两个参数的意义分别如下:
-DinteractiveMode=false 指定不使用交互模式
-DarchetypeCatalog=internal 指定不从远程服务器上取catalog,
完整的命令如下:
mvn archetype:generate \ |
创建webapp项目命令如下:
mvn archetype:generate \ |
遇到同样问题的同学们,你们可以试试我的方法,应该能够快速的解决你们的问题。