2 回答
从理论上讲,像 WTP 和 JBosd 工具这样的 Eclipse 插件可以做到这一点,但到目前为止,这些插件只能在完整的 IDE 中工作,而不是作为可由 Ant 或 Maven 调用的单独命令行工具。
更糟糕的是,这些工具从来都不是完美的。他们总是报告大量误报,根据经验,他们的验证算法通常落后数年。当前版本的 WTP 可能只是勉强验证 Java EE 5 的所有内容(也许它仍然遗漏了一些晦涩的功能)。
因此,如果您基于此验证的构建失败,您可能永远无法部署任何东西。即使在最仔细编码和完全正确的 Web 应用程序中,WTP 和 JBoss 工具也发现有必要报告数百个或在大型项目中数千个警告和错误。恕我直言,依赖它完全没用。
这是一种鸡/蛋问题。正如您自己所说,许多 EL 表达式只能在运行时进行评估。
请记住,EL 包含的不仅仅是简单的属性和方法名称,它还有不同的隐式对象(params
、facesContext
、session
等),可在不同的上下文中使用,您还可以通过许多不同的方式将自己的对象添加到其中(其他 Facelets 模板,可能会或可能不会在 faces-config 中注册的 bean,甚至是在视图中插入对象的纯 Java 代码)。
所有这些都导致使用这种类型的检查来构建工具变得非常困难。我认为最接近您想要的是使用JSFUnit和Arquillian为每个页面创建自己的 JSF 单元测试,并将它们集成到您的构建中。由于您的目标是 JBoss 7,我认为这应该是可行的。