如何指定为 archetype:generate 创建项目的目录?

How can I specify the directory where to create the project for archetype:generate?

我正在使用 mvn archetype:generate -B ... 生成一个 maven 项目。

它将生成的项目放在当前工作目录中。

是否可以自定义将生成的项目放在我指定的目录中?我在命令行 --help 菜单中看不到任何选项。

您不能为 archetype:generate 指定目录,此插件始终以当前工作目录为目标。

Maven Archetype 文档建议使用 basedir 参数。可能是这样的:

mvn archetype:generate 
    -DgroupId=foo 
    -DartifactId=bar 
    -Dbasedir=/some/other/directory

但是,不幸的是,这不起作用,即使指定了该参数,原型也会生成到当前工作目录中。查看 Maven Archetype JIRA,我可以看到有一个未解决的问题:

https://issues.apache.org/jira/browse/ARCHETYPE-311

这个问题自 2010 年 4 月以来一直存在,它是针对 archetype 插件的 2.2.0 版提出的,我刚刚验证了这个问题在最新版本的 archetype 插件中仍然存在,完成了以下命令但在当前工作目录中创建了 bar 而不是 /some/other/path ...

mvn org.apache.maven.plugins:maven-archetype-plugin:3.0.1:generate
    -DarchetypeArtifactId=maven-archetype-quickstart
    -DinteractiveMode=false 
    -DgroupId=bar 
    -DartifactId=foo 
    -Dbasedir=/some/other/directory

因此,如果您想使用 archetype:generate 并且希望生成的项目存在于其他地方,那么我认为您可能必须编写一个简单的脚本...

  • 调用插件
  • 插件完成后将创建的目录移动到您想要的位置运行

-Dbasedir 不起作用。

您可以通过传递 -DoutputDirectory=/some/other/directory

来指定输出目录

这是文档 https://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html