Я читаю интересный учебник здесь: http://www.avajava.com/tutorials/lessons/how-do-i-generate-pmd-and-cpd-reports-for-a-site.html?page=1Maven PMD плагин не создает отчет с командой «МВН сайта» или «PMD: PMD»
В этом учебнике показано, как использовать 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 на сгенерированном веб-сайте?
Кроме того, когда я запускаю mvn pmd:pmd
, есть успешная сборка, но я не получаю полезных PMD-показателей. Я даже кодировал некоторые неиспользуемые переменные и методы в одном из моих исходных файлов Java, как показано в приведенном выше связанном учебнике, и нет полезного вывода.
Команда mvn pmd:pmd
действительно создает некоторые файлы. Пара - это файлы правил для механизма, которые он выглядит, а остальные пустые. Пожалуйста, смотрите скрин-шоты из этого ниже:
Рисунок 1: Файлы, созданные с помощью PMD: PMD команды
Рисунок 2: Пустой файл PMD - даже если есть очевидные ошибки в исходном файле Java
Кто-нибудь знает, что случилось? Почему PMD не работает с Maven для меня?
Спасибо за это.
Кроме того, из того, что я прочитал в Интернете по телефонам PMD's website и Maven's website, в разделе «Отчеты по проектам» должна быть какая-то информация. Здесь нет данных, но из PMD. См. Приведенный ниже снимок экрана.
Рисунок 3: Нет PMD данных содержится в проекте Отчеты
С уважением
UPDATE
При изменении в разделе PMD файла pom.xml
к ниже snippet Я получаю результаты 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>
, чтобы попытаться получить результаты, но до сих пор ничего ...:/
Спасибо за изучение этого ...
А, это сработало. Спасибо вам за помощь. :) Я добавил некоторые правила, чтобы поработать с PMD, и он показал это в отчете! Еще раз спасибо за эту помощь с Maven и PMD. Потрясающие. – user3870315