2015-05-07 4 views
-1

Возможно ли использовать плагин Maven PMD для проверки файлов XSLT и создания отчетов? Если да, то можете ли вы предоставить пример использования конфигурации плагина.Плагин Maven PMD для компиляции файлов XSLT

+0

PMD analyzis исходного кода не XSLT-файлов. Я бы предложил взглянуть на http://mojo.codehaus.org/xml-maven-plugin/ – khmarbaise

+0

@khmarbaise - PMD имеет XML и XSL-модуль (http://pmd.sourceforge.net/pmd-5.3.1 /pmd-xml/index.html), поэтому вопрос Jai действителен для меня –

+0

А ... я не знал о благодарности. – khmarbaise

ответ

0

Это не изящное решение, но я получил его для работы со следующими настройками: вам нужно будет добавить папку, в которой ваши файлы xsl будут в качестве исходной папки, и убедитесь, что плагин pmd сканирует * .xsl-файлы и имеет зависимость pmd-xml.

Предполагаю, что файлы xsl находятся в src/main/xsl и используют расширение файла xsl.

Я возьму версию 5.2.3 PMD, так как на ней построен maven-pmd-плагин. Я включил только встроенный набор правил rulesets/xsl/xpath.xml. Правила описаны в pmd documentation.

Вот полный pom.xml файл:

<project> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>net.sourceforge.pmd.it</groupId> 
    <artifactId>maven-example-xsl</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>build-helper-maven-plugin</artifactId> 
       <version>1.9.1</version> 
       <configuration> 
        <sources> 
         <source>src/main/xsl</source> 
        </sources> 
       </configuration> 
       <executions> 
        <execution> 
         <goals><goal>add-source</goal></goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <artifactId>maven-pmd-plugin</artifactId> 
       <version>3.4</version> 
       <configuration> 
        <rulesets> 
         <ruleset>rulesets/xsl/xpath.xml</ruleset> 
        </rulesets> 
        <printFailingErrors>true</printFailingErrors> 
        <includes> 
         <include>**/*.xsl</include> 
        </includes> 
       </configuration> 
       <executions> 
        <execution> 
         <phase>verify</phase> 
         <goals><goal>check</goal></goals> 
        </execution> 
       </executions> 
       <dependencies> 
        <dependency> 
         <groupId>net.sourceforge.pmd</groupId> 
         <artifactId>pmd-xml</artifactId> 
         <version>5.2.3</version> 
        </dependency> 
       </dependencies> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

Вот файл XSL образец, который вызывает "UseConcatOnce" правило. Храните это под src/main/xsl/sample.xsl:

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <xsl:value-of select="concat('double', concat('concat'))"/> 
</xsl:template> 
</xsl:stylesheet> 

Если вы бежите теперь mvn clean verify, вы должны увидеть провальные сборки:

... 
[INFO] --- maven-pmd-plugin:3.4:check (default) @ maven-example-xsl --- 
[INFO] PMD Failure: sample.xsl:4 Rule:UseConcatOnce Priority:3 The xpath concat() function accepts as many arguments as required, you may be able to factorize this expression. 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------