Как избежать аннулирования кэша / «Кэш анализа аннулирован, изменен путь auxclass» при каждом запуске PMD? - PullRequest
3 голосов
/ 11 февраля 2020

Каждый раз, когда я запускаю 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 и почему создается сообщение, однако оно не дает объяснения или инструкции, как правильно его использовать.

...