1

我创建了一个 Maven Archetype 用于我们公司的项目。一切都很顺利,直到要部署一个从原型构建的项目,该原型由于无效的 XML 而失败。

在我创建的用于生成原型的模板中有几个 .xml 文件。每个都有一个 XML 声明:

<?xml version="1.0" encoding="UTF-8"?>

当运行mvn archetype:create-from-project为我消除原型时,它显然将 XML 声明中的版本确定为 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这样做呢?有没有办法以某种方式限制其范围或在命令行中设置标志?

4

1 回答 1

2

您可以添加-Darchetype.filteredExtentions=extension1,extension2,...到您的mvn命令中,以告诉 maven 在进行速度替换时要包含哪些文件扩展名。此过滤器包括文件扩展名,因此您已列出所有文件扩展名并保留 xml 以跳过它们。-Darchetype.filteredExtentions如果xml是项目中唯一的文件类型,您可以这样做。

于 2013-07-26T19:42:48.897 回答