Возможно ли использовать плагин Maven PMD для проверки файлов XSLT и создания отчетов? Если да, то можете ли вы предоставить пример использования конфигурации плагина.Плагин Maven PMD для компиляции файлов XSLT
-1
A
ответ
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] ------------------------------------------------------------------------
PMD analyzis исходного кода не XSLT-файлов. Я бы предложил взглянуть на http://mojo.codehaus.org/xml-maven-plugin/ – khmarbaise
@khmarbaise - PMD имеет XML и XSL-модуль (http://pmd.sourceforge.net/pmd-5.3.1 /pmd-xml/index.html), поэтому вопрос Jai действителен для меня –
А ... я не знал о благодарности. – khmarbaise