我尝试使用原型创建maven项目,该模式在Maven central repo中不存在,但存在于另一个远程存储库中。 在 maven-archetype-plugin版本2.4 中,我可以使用-DarchetypeRepository param来指定maven应该查找我的原型的另一个repo。 在新版本(3.0)中,这个参数不起作用。 (证明:http://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html#archetypeCatalog)
所以我需要使用旧版本的插件并编写长命令,如
$ mvn org.apache.maven.plugins:maven-archetype-plugin:2.4:generate -DarchetypeGroupId=some.id -DarchetypeArtifactId=some.another.id -DarchetypeVersion=some.version -DarchetypeRepository=repo.url
如何使用maven-archetype-plugin:3.0?
执行相同的命令我尝试使用archetypeCatalog=repo.url
,但它没有这样做,我只能用它设置本地或远程仓库。
感谢。
插件开发人员的回答:
Allowing to set a URL via commandline is considered to be a security leak, so specifying the repository (id: archetype) in the settings.xml is the right way.
答案 0 :(得分:-1)
您可以在settings.xml中将您的存储库指定为[archetypeArtifactId] -repo。这被定义为FAQs之一。
如果您没有身份验证,请不要在settings.xml中指定它。
OR
我刚刚运行了以下命令,
mvn org.apache.maven.plugins:maven-archetype-plugin:3.0.0:generate
-DarchetypeGroupId=org.grails
-DarchetypeArtifactId=grails-maven-archetype
-DarchetypeVersion=1.0
-DarchetypeCatalog=http://snapshots.repository.codehaus.org
它给了我以下警告,
[警告]在任何目录中都找不到原型。回到中央 存储库(http://repo.maven.apache.org/maven2)。
[警告]如果原型的存储库位于别处,请使用-DarchetypeRepository =。