我试图用一个现有的目录创建一个空的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
型
4条答案
按热度按时间fdbelqdn1#
quickstart原型可以很好地处理这个问题,它给出一个警告,然后在一个现有目录(即与artifactId相同)中创建pom.xml和maven
src/
目录结构。必须从PANOW目录运行。
字符串
wgeznvg72#
由于该目录已经存在,maven将无法生成另一个同名的工件项目。由于您的 loms 目录是一个git项目,并且无法删除它,您可以遵循一个棘手的方法:
字符串
<artifactId>
必须更新为 loms(注意,我将使用命令行,但您可以使用任何可视化工具来更新文件):型
artifactId
中的 -2 后缀,使其匹配 loms。xurqigkl3#
今天我尝试了同样的方法,我发现下面的方法对我的用例很有效,其中a)远程仓库总是用一个只包含一个基本
README.md
的main
分支创建的,b)我们对所有事情都使用PR,甚至是第一次实际提交。在使用原型创建文件夹之后,我在新创建的文件夹中执行了以下命令:
字符串
origin/main
的引用。master
是一个有效的名称,那么重命名对您来说可能是不必要的。如果远程分支也被称为master
,我不知道这是如何工作的。在此之后,我可以添加更多的提交,或推送,让PR按原样完成。
klr1opcd4#
如果您添加
archetypeGroupId
属性,您的调用将成功而不会出现错误。字符串
测试结果:
型