2 Stimmen

Verwendung von JTidy mit Maven2

Ich arbeite an einem Java-Projekt mit spring2 und Maven.

Ich habe JSLint4Java bereits in Maven integriert, muss jetzt aber noch einige weitere Validierungen vornehmen.

Es gibt eine Reihe von Kernseiten im Build, z.B. die Homepage, die Suchseite usw., die ich automatisch auf die Gültigkeit der endgültigen HTML-Ausgabe testen möchte, d.h. Valid XHTML 1.1 strict aus dem Maven Build. Die HTML-Vorlagendateien, die die endgültige HTML-Ausgabe generieren, sind alle modularisiert und getrennt, so dass die Validierung der einzelnen Komponenten nicht funktioniert, da sie erst dann gültig werden, wenn sie als Ganzes ausgeführt werden.

Ich möchte nicht jede der Seiten im Build zu testen, da dies es erheblich verlangsamen würde, wäre meine Präferenz eine XML-Konfigurationsdatei mit einer Liste der URLs, die ich durch den Validierungsprozess laufen lassen möchte.

Ich habe das Jtidy-Projekt gefunden, bin mir aber nicht sicher, wie ich es in den Maven-Build einbinden kann und wie ich es dazu bringe, bestimmte URLS aufzurufen, um sie zu validieren.

Hat das jemand schon einmal gemacht? Könnte jemand einen kurzen Überblick über die Schritte geben, die ich dazu benötige?

乾杯

1voto

Pascal Thivent Punkte 548176

Wenn JTidy wirklich das ist, was Sie wollen, gibt es eine Maven JTidy-Plugin . Es scheint bei Dateien zu funktionieren, nicht bei URLs:

  <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>

Wenn das Plugin nicht das tut, was Sie wollen, würde ich nicht empfehlen, die exec() (was die Installation von Tidy voraussetzen und somit die Portabilität beeinträchtigen würde).

(EDIT: Eigentlich bin ich mir nicht sicher, was Sie zu erreichen versuchen genau ob Sie eine vollständig automatisierte Lösung wünschen oder nicht, ob Sie die Bereitstellung der Anwendung automatisieren müssen usw., aber hier sind noch einige Hinweise.

Für etwas Manuelles könnten Sie vielleicht wget verwenden, um das generierte HTML zu speichern. Für GET:

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

Oder POST mit der Option --post-data:

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

Und dann JTidy ausführen. Wenn Sie die Dinge automatisieren wollen, müssen Sie Ihre Anwendung zuerst mit dem Maven-Cargo-Plugin . Dann könnten Sie die Ameisen Aufgabe erhalten mit dem antrun-Plugin. Und schließlich führen Sie die jtidy-Validierung durch.

Wenn Sie die Validierung der generiert HTML während des Builds, müssen Sie Ihre Anwendung bereitstellen und ein Tool gegen sie laufen lassen. Sie sollten sich die w3c-markup-validierung-filter . Verwenden Sie die Maven-Cargo-Plugin um Ihre Anwendung mit dem Filter einzusetzen (Cargo ermöglicht das Zusammenführen von web.xml so dass Sie den Filter nur für den Validierungstest hinzufügen können) und führen Sie eine Reihe grundlegender Selenium-Tests aus, um Ihre Seiten zu durchsuchen und zu prüfen, ob das vom W3cMarkupValidationFilter in die HTML-Seite injizierte Kästchen grün ist).

0 Stimmen

Ah ok, das klingt wie das, was ich will. Problem ist jedoch, dass die JSP-Vorlagen im Projekt alle in separate Komponenten mit Server-Code in ihnen gebrochen sind, werden sie wahrscheinlich nicht gültig sein, bis kompiliert und durch eine URL aufgerufen. Vielleicht gibt es einen Prozess, bei dem ich die URLs aufrufen und die Inhalte temporär speichern und überprüfen kann?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X