Maven在现有目录中生成原型

时间:2014-09-01 06:52:33

标签: java maven maven-3 pom.xml maven-archetype

我尝试使用现有的dir创建空的Maven Web项目(实际上来自 github 项目,它是空的并且只包含 README 文件)。

但maven似乎检测到目录存在并因错误而失败:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:2.2:generate (default-cli) on project standalone-pom: Directory loms already exists - please run from a clean directory -> [Help 1]

是否有机会强制maven使用现有目录?

调用命令:

mvn archetype:generate -DgroupId=org.reaver.devs -DartifactId=loms -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

2 个答案:

答案 0 :(得分:1)

由于目录已经存在,maven无法生成具有相同名称的另一个工件项目。由于您的 loms 目录是一个git项目,并且删除它是不可接受的,您可以采用一种棘手的方式:

  • 使用您想要的原型生成一个项目但具有不同的工件名称(只是作为交换目录):

    mvn archetype:generate -DgroupId=org.reaver.devs \
                           -DartifactId=loms-2 \
                           -DarchetypeGroupId=org.apache.maven.archetypes \
                           -DarchetypeArtifactId=maven-archetype-webapp \
                           -DinteractiveMode=false
    
  • 上面的命令将生成一个具有maven性质的新目录,它绝对符合您对 loms 项目的期望,期望 {em}中的<artifactId> > pom.xml 必须更新为 loms (请注意,我将使用命令行,但您可以使用任何可视化工具来更新文件):

    vi pom.xml
    
  • 删除artifactId中的 -2 后缀,使其与 loms 匹配。

  • loms-2 / 目录下的所有文件/文件夹复制到项目目录 loms /

  • 现在您已初始化项目。

答案 1 :(得分:-1)

quickstart archetype为此很好。它发出警告,但随后在现有目录(即与artifactId相同)内创建pom.xml和Maven src/目录结构。

它必须在 PARENT 目录中运行。

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false