Maven在现有目录中生成achetype

M_F*_*M_F 6 java pom.xml maven-3 maven maven-archetype

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

但是 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]
Run Code Online (Sandbox Code Playgroud)

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

调用命令:

mvn archetype:generate -DgroupId=org.reaver.devs -DartifactId=loms -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
Run Code Online (Sandbox Code Playgroud)

tma*_*wen 0

由于该目录已经存在,maven 将无法生成另一个同名的工件项目。而且由于你的loms目录是一个git项目,删除它是不可接受的,所以你可以遵循一个棘手的方法:

  • 生成一个具有所需原型但具有不同工件名称的项目(仅用作交换目录):

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

    vi pom.xml
    
    Run Code Online (Sandbox Code Playgroud)
  • 删除-2后缀,artifactId使其匹配loms

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

  • 现在您的项目已初始化。