0

我有同一个项目的两个版本。在一个项目中,Java 源代码的一部分位于库中,这使得测试变得困难。所以我创建了同一个项目的第二个版本,其中包含了所有源代码。
两个项目在 WebContent 的数据部分中都有相同的 xml 文件。在项目的库版本中,eclipse 抱怨一些 xml 文件:“根元素之后的文档中的标记必须格式正确”,因为它没有根节点。我们可能需要解决的问题。
但令我惊讶的是,在该项目的非库版本中存在相同的文件,并且这里 Eclipse 不会抱怨。怎么可能?
两个项目都使用工作区设置,因此没有项目特定的设置。我比较了许多设置,但它们都是相同的。这些文件没有 xml 模式。
有人有线索吗?

4

2 回答 2

0

将 Eclipse->Preferences->Validation->XML-> Validating file : 设置为“Ignore”(两个下拉菜单),如果来自同一工作区的项目具有不同的配置,还请检查此区域。

于 2012-11-16T11:14:37.970 回答
0

我终于自己找到了解决方案。我认为这两个项目是相同的,但事实并非如此。在检查 .project 文件时,我发现显示 xml 错误的项目有

<buildCommand>
 <name>org.eclipse.wst.validation.validationbuilder</name>
 <arguments>
 </arguments>
</buildCommand>

而另一个项目没有。在互联网上搜索validationbuilder后,我发现这确实是xml检查器。将它存在于 .profile 中,会强制在每次构建和/或更改后验证所有 xml 文件,从而导致错误文件出现红叉。在另一个项目中,相同的文件有相同的错误,当手动对此类文件执行“验证”时,该文件将显示相同的错误。但它不会在每次构建后自动显示。
从 .project 中删除此构建命令不会删除红十字,因为它们已经被检测到。它们只能通过修复错误并手动运行验证来清除。另一种方法是从工作区中删除文件:.metadata.plugins\org.eclipse.core.resources.projects\myproject.markers
这将重置所有红叉,直到下一次显式验证。

于 2013-02-21T11:43:44.290 回答