Каждый раз, когда я запускаю PMD через плагин Maven с настроенным кешем анализа, я вижу сообщение журнала
[INFO] Analysis cache loaded
[INFO] Analysis cache invalidated, auxclasspath changed.
[INFO] Analysis cache updated
Судя по скорости анализа с кешем и без него (файлы присутствуют), кеш не используется (вот как я понимаю недействительность в этом контексте). Я хотел бы использовать его для ускорения анализа.
Я использую PMD в качестве отдельного двоичного файла в хуке фиксации, где мне нужно было указать -auxclasspath
. Я нашел это в сообщении на форуме, использовал его, и это, кажется, работает, однако я не понимаю этого и не нахожу никакой информации об этом. Хук фиксации работает только для измененных файлов и не использует кеш.
Моя конфигурация плагина
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.13.0</version>
<executions>
<execution>
<id>pmd</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<rulesets>
<ruleset>/pmd.xml</ruleset>
</rulesets>
<printFailingErrors>true</printFailingErrors>
<includeTests>true</includeTests>
<analysisCache>true</analysisCache>
<analysisCacheLocation>${env.HOME}/code-analysis/pmd-analysis-cache/${project.name}</analysisCacheLocation>
<linkXRef>false</linkXRef>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>6.21.0</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-java</artifactId>
<version>6.21.0</version>
</dependency>
</dependencies>
</plugin>
Есть отчет о проблеме , который позволяет сделать некоторые догадывается о том, что такое auxclasspath и почему создается сообщение, однако оно не дает объяснения или инструкции, как правильно его использовать.