2017-02-08 24 views
4

Я пытаюсь настроить плагин Maven Checkstyle для отчетности и хотел бы изменить зависимость Checkstyle до 7.5 вместо стандартного 6.11.2.Зависимости, добавленные в pluginУправление, не учтенное во время отчетов

Чтобы достичь этого, у меня есть pluginManagement, заявленный в родительском помпе с зависимостью. В дочернем проекте я просто ссылаюсь на плагин в теге отчетности.

Однако я вижу, что по умолчанию Checkstyle (6.11.2) загружается в репозиторий. См. Ниже родительский и детский пом.

<?xml version="1.0" encoding="UTF-8"?> 
<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>parent_app</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <name>parent_app</name> 
    <modules> 
    <module>my-app2</module> 
    </modules> 
    <build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-checkstyle-plugin</artifactId> 
      <version>2.17</version> 
      <dependencies> 
      <dependency> 
       <groupId>com.puppycrawl.tools</groupId> 
       <artifactId>checkstyle</artifactId> 
       <version>7.5</version> 
      </dependency> 
      </dependencies> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    </build> 
</project> 

Детский pom.xml

<?xml version="1.0"?> 
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>parent_app</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    </parent> 
    <groupId>com.mycompany.app</groupId> 
    <artifactId>my-app2</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <name>my-app2</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> 
    <reporting> 
    <plugins> 
     <plugin> 
      <artifactId>maven-checkstyle-plugin</artifactId> 
      <configuration> 
       <configLocation>src/main/resources/checkstyle.xml</configLocation> 
      </configuration> 
      <reportSets> 
       <reportSet> 
        <reports> 
         <report>checkstyle</report> 
        </reports> 
       </reportSet> 
      </reportSets> 
     </plugin> 
    </plugins> 
</reporting> 
</project> 

Можете ли вы помочь, если это правильный способ, чтобы переопределить зависимость отчетности плагин? Если да, то почему он не работает?

Maven Версия: 3.2.5

ответ

4

Похоже, есть ошибка здесь с Maven сайта Plugin (регрессии введен после MSITE-507). Зависимости, явно добавленные к управляемым плагинам, сконфигурированным в сборке, действительно не учитываются, если только плагин не объявлен сам. То есть, следующие в родительском ПОМ даст вам желаемое поведение (проверено с Maven 3.3.9):

<build> 
    <pluginManagement> 
    <plugins> 
     <plugin> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     <version>2.17</version> 
     <dependencies> 
      <dependency> 
      <groupId>com.puppycrawl.tools</groupId> 
      <artifactId>checkstyle</artifactId> 
      <version>7.5</version> 
      </dependency> 
     </dependencies> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
    <plugins> 
    <plugin> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
    </plugin> 
    </plugins> 
</build> 

Когда этот новый родитель устанавливается в локальном хранилище, и построить на ребенке (например, с mvn clean site), это будет ожидаемый Checkstyle 7.5, который будет использоваться.

+0

Спасибо, что сработал – Santo

+2

@Santo FYI, я зарегистрировал ошибку в [MSHARED-616] (https://issues.apache.org/jira/browse/MSHARED-616), и исправление, вероятно, превратится в следующий версию Плагина сайта. – Tunaki