我创建了一个Maven Archetype,用于我们公司的项目。一切都运行良好,直到部署一个由原型构建的项目,该项目由于无效的XML而失败。
在我创建的用于生成原型的模板中有几个.xml文件。每个都有一个XML声明:
<?xml version="1.0" encoding="UTF-8"?>
当运行mvn archetype:create-from-project
为我删除原型时,它显然将XML声明中的 version 确定为Maven关键字并将其包装在变量中。结果是原型中的每个XML声明变为:
<?xml ${version}="1.0" encoding="UTF-8"?>
使用原型创建项目后,Maven显然用项目的用户选择版本替换了这个变量。这导致了类似的事情:
<?xml 1.0-SNAPSHOT="1.0" encoding="UTF-8"?>
对XML无效。那么我的问题是,你怎么能阻止mvn archetype:create-from-project
这样做呢?有没有办法以某种方式限制其范围或在命令行中设置标志?
答案 0 :(得分:2)
您可以在-Darchetype.filteredExtentions=extension1,extension2,...
命令中添加mvn
,告诉maven在进行速度替换时要包含哪些文件扩展名。此过滤器包含文件扩展名,因此您必须列出所有文件扩展名并保留xml以便跳过它们。如果-Darchetype.filteredExtentions
是项目中唯一的文件类型,则可以xml
。