Maven“archetype:generate”无法找到我的自定义原型,但可以从交互模式中找到

时间:2016-07-18 09:11:28

标签: java maven powershell maven-3 maven-archetype

我按照maven official example创建了一个maven原型。我成功地使用命令mvn clean install将我的自定义原型安装到我的本地存储库中。但是,当我尝试使用以下内容从原型创建新项目时:

mvn archetype:generate -DarchetypeCatalog=local -DarchetypeGroupId=aki.aboodz.archetype -DarchetypeArtifactId=my-archetype -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=com.test.custom.archetype -DartifactId=archetype-example -Dversion=1.0

我得到项目pom not found exception MissingProjectException。但是,当输入命令mvn archetype:generate -DarchetypeCatalog=local,其中列出了交互模式下的所有原型时,我发现我的原型安装在那里。这意味着我只能使用交互模式创建项目。

我认为我的maven配置有问题。

PS:我试图从spring-quick-start原型创建一个项目,我遇到了同样的问题。我只能从交互模式中做到。

1 个答案:

答案 0 :(得分:0)

我发现问题出在使用Windows PowerShell输入命令。如果参数包含特殊字符(例如' - '或'。'),则PowerShell希望参数在引号内(双/单引号并不重要)。当我尝试使用cygwin执行上述命令时,命令成功运行,并从指定的原型创建了一个项目而没有抱怨。要在Windows PowerShell中执行上述命令,我们需要引用参数值。命令如下:

mvn archetype:generate -DarchetypeCatalog="local" -DarchetypeGroupId="aki.aboodz.archetype" -DarchetypeArtifactId="my-archetype" -DarchetypeVersion="1.0-SNAPSHOT" -DgroupId="com.test.custom.archetype" -DartifactId="archetype-example" -Dversion="1.0"