pom.xml的项目标签中的名称空间声明是否有任何需要或用法?必需的pom.xml名称空间?
<project xmlns="http://maven.apache.org/POM/4.0.0" ...
我们有一个工具,分析pom.xmls但它没有包含一个命名空间声明pom.xmls。
pom.xml的项目标签中的名称空间声明是否有任何需要或用法?必需的pom.xml名称空间?
<project xmlns="http://maven.apache.org/POM/4.0.0" ...
我们有一个工具,分析pom.xmls但它没有包含一个命名空间声明pom.xmls。
通常,将命名空间信息添加到xml文件是一种很好的风格。因此,将这些信息添加到您的pom文件是一种很好的风格,如果您使用的是Eclipse等工具,这些信息尤其有用。此外,您还可以验证xml文件是否符合在此处提供的XSD文件。
除此之外,如果你的工具有这样的命名空间的问题,它不是一个好的工具,因为它应该正确地处理命名空间定义。
如果你喜欢阅读POM文件它不应该以实施其正确处理命名空间等问题
读取POM文件包含以下各行需要:
MavenXpp3Reader mavenReader = new MavenXpp3Reader();
Model pom = mavenReader.read(new FileReader(pomFile));
所有Maven的文档告诉你使用命名空间,并暗示它是必需的。例如,the POM reference显示:
<project xmlns="http://maven.apache.org/POM/4.0.0"
然而,Maven使用读取pom.xml
文件doesn't check the namespace at all的MavenXpp3Reader
类。任何值(甚至没有值)都不会阻止Maven解析pom。 (甚至correct use of namespaces can cause Maven to fail to parse。)
但是,就像你有一个工具无法解析有效的poms一样,还有其他工具在那里重新实现pom解析并需要命名空间声明。没有生产poms可能会导致互操作性问题。
总之;如果您使用Maven构建的话,您会摆脱这种困境,但是修复代码中的错误将更可取。
“好风格”是我的问题没有答案。 Eclipse提供了在pom.xml中没有命名空间的自动完成和验证功能 我知道,在声明的命名空间上失败时,该工具不能很好地工作。 MavenXpp3Reader非常适合阅读pom.xmls,但MavenXpp3Writer并不适合用于处理书写pom.xmls 对于我们来说,最快速和最安全的解决方案是从pom.xmls中删除几个命名空间,但是我想如果存在是他们的任何用法。 – BlackEye 2014-09-24 09:34:05
我会建议看看版本的maven插件,它确切地做你想做的事情。 – khmarbaise 2014-09-24 10:50:24