Подключаемый модуль Maven PMD не создает отчет с помощью команды «mvn site» или «pmd: pmd»
Я читаю интересный урок здесь:http://www.avajava.com/tutorials/lessons/how-do-i-generate-pmd-and-cpd-reports-for-a-site.html?page=1
В этом руководстве показано, как использовать Maven для запуска инструмента статического анализа с открытым исходным кодом PMD и для просмотра сгенерированного вывода на веб-сайте, созданном Maven. Maven может легко создавать сайты сmvn site
команда, но этот учебник показывает, как использовать PMD для более полезных метрик в исходном коде.
Инструкции были выполнены в меру своих возможностей. Вот мойpom.xml
файл, полученный при чтении учебника:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.name.bookstore</groupId>
<artifactId>bookstore</artifactId>
<packaging>jar</packaging>
<version>1</version>
<name>bookstore</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<extensions>
<!-- start for deploying using webdav -->
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav</artifactId>
<version>1.0-beta-2</version>
</extension>
</extensions>
</build>
<distributionManagement>
<!-- start -location where site is deployed -->
<site>
<id>site.deployments</id>
<name>Site deployments</name>
<url>dav:localhost/${basedir}</url>
</site>
</distributionManagement>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.10.1</version>
</plugin>
</plugins>
</reporting>
</project>
Когда я запускаю команду:mvn clean site
Я получаю сайт, созданный Maven, с кучей разных страниц, но ни одна из них не показывает ничего в отношении PMD. Что мне здесь не хватает?Почему я не вижу ничего в отношении PMD на созданном веб-сайте?
Кроме того, когда я бегуmvn pmd:pmd
есть успешная сборка, но я не получаю никаких полезных показателей PMD. Я даже закодировал некоторые неиспользуемые переменные и методы в одном из моих исходных файлов Java, как показано в связанном выше учебнике, и полезного вывода нет.
mvn pmd:pmd
Команда появляется для создания некоторых файлов, хотя. Пара - это файлы правил для движка, на который он похож, а остальные - пустые. Пожалуйста, смотрите скриншоты этого ниже:
Рисунок 1: Файлы, созданные командой pmd: pmd
фигура 2: Пустой файл pmd - хотя в исходном файле Java есть очевидные ошибки
Кто-нибудь там знает, что случилось? Почему PMD не работает с Maven для меня?
Спасибо, что прочитали это.
Кроме того, из того, что я прочитал в Интернете наСайт PMD а такжеВеб-сайт Maven в разделе «Отчеты проекта» должна быть некоторая информация. Там нет данных, хотя из PMD. Пожалуйста, смотрите скриншот ниже.
Рисунок 3: Данные PMD не найдены в отчетах проекта
С уважением
ОБНОВИТЬ
Когда я меняю раздел PMDpom.xml
файл в приведенный ниже фрагмент Я получаю некоторые результаты CPD через PMD, но все еще ничего от PMD на ошибки кода. Я даже закодировал в NullPointerException и PMD ничего не сказал даже при выдачеmvn pmd:check
команда.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.4</version>
<configuration>
<linkXref>true</linkXref>
<sourceEncoding>utf-8</sourceEncoding>
<minimumTokens>1</minimumTokens>
<targetJdk>1.7</targetJdk>
</configuration>
</plugin>
Во фрагменте я изменилsourceEncoding
тег быть utf-8, потому что все, что я вижу в отношении этого, является utf-8. Я также изменилminimumTokens
значение 1, чтобы попытаться получить больше вывода из этого плагина. Я также поместил этот фрагмент в<build>
раздел, чтобы попытаться получить результаты, но все еще ничего ...: /
Спасибо за изучение этого ...