将JTidy与Maven2一起使用

时间:2009-11-26 11:36:54

标签: html validation maven-2 build-automation jtidy

我正在使用spring2和Maven开发一个Java项目。

我已将JSLint4Java合并到Maven中,但现在发现自己需要进一步验证。

构建中有许多核心页面,即主页,搜索页面等,我想自动测试最终HTML输出的规范有效性,即Maven构建中的Valid XHTML 1.1严格。生成最终HTML输出的html模板文件都是模块化和分离的,因此单独验证组件将无法正常工作,因为它们在作为一个执行之前不会生效。

我不想测试构建中的每个页面,因为这会大大减慢它的速度,我的首选是拥有一个XML配置文件,其中包含我希望在验证过程中运行的URL列表。 / p>

我找到了Jtidy项目,但不确定如何将其合并到Maven构建中并让它调用特定的URL来验证。

有没有人曾经这样做过?有人可以简要介绍一下我需要做的这些阶段吗?

干杯

1 个答案:

答案 0 :(得分:1)

如果JTidy真的是你想要的,那就是Maven JTidy Plugin。它似乎适用于文件,而不是URL:

  <build>    
    <plugins> 
      <plugin>    
        <groupId>jtidy</groupId>   
        <artifactId>maven-jtidy-plugin</artifactId>    
        <configuration>    
          <srcdir>src/main/resources/html</srcdir>    
          <destdir>target/html</destdir>    
          <properties>src/main/resources/jtidy.properties</properties>    
        </configuration>
        <executions>
          <execution>    
            <goals>    
              <goal>jtidy</goal>    
            </goals>    
          </execution>    
        </executions>    
      </plugin>    
    </plugins>    
  </build>

除非插件没有按照你的意愿行事,否则我不建议使用exec()(这需要安装Tidy,因此会损害可移植性)。

(编辑:实际上,如果你想要一个完全自动化的解决方案,我不确定你想要实现完全,如果你需要自动化部署应用程序等等,但这里有一些提示。

对于某些手册,您可以使用wget来保存生成的HTML。对于GET:

wget http://www.mypage.com/index.jsp?foo=bar

或使用--post-data选项POST:

wget http://www.mypage.com/index.jsp --post-data="foo=bar"

然后运行JTidy。 如果要自动化,则必须先使用maven cargo plugin部署应用程序。然后,您可以将Ant的Get Task与antrun插件一起使用。最后,执行jtidy验证。

如果要在构建期间验证生成的 HTML,则需要部署应用程序并针对它运行某些工具。你应该看看w3c-markup-validation-filter。使用maven cargo plugin使用过滤器部署您的应用程序(货物允许合并web.xml,以便您只能为验证测试​​添加过滤器)并运行一组基本的selenium测试来浏览您的页面并检查如果W3cMarkupValidationFilter注入HTML页面的小方框是绿色的。)