HubSpot / dependency-management-maven-plugin

5 stars 6 forks source link

dependency-management-plugin

This plugin has been adopted by the basepom project, and now lives here

Maven Plugin for validating that the versions in dependency management and plugin management match the resolved versions. Can be run as a standalone plugin or as a rule with the maven-enforcer-plugin.

Available parameters

Minimal usage example

<plugins>
  ...
  <plugin>
    <groupId>com.hubspot.maven.plugins</groupId>
    <artifactId>dependency-management-plugin</artifactId>
    <version>0.4</version>
    <executions>
      <execution>
        <goals>
          <goal>analyze</goal>
        </goals>
        <phase>validate</phase>
      </execution>
    </executions>
  </plugin>
  ...
</plugins>

Full usage example

<plugins>
  ...
  <plugin>
    <groupId>com.hubspot.maven.plugins</groupId>
    <artifactId>dependency-management-plugin</artifactId>
    <version>0.4</version>
    <executions>
      <execution>
        <goals>
          <goal>analyze</goal>
        </goals>
        <phase>validate</phase>
        <configuration>
          <fail>true</fail>
          <requireManagement>
            <dependencies>true</dependencies>
            <plugins>true</plugins>
            <allowVersions>false</allowVersions>
            <allowExclusions>false</allowExclusions>
            <overrides>
              <override>
                <patterns>
                  <pattern>com.example:*</pattern>
                </patterns>
                <dependencies>false</dependencies>
              </override>
            </overrides>
          </requireManagement>
        </configuration>
      </execution>
    </executions>
  </plugin>
  ...
</plugins>

Enforcer plugin example

<plugins>
  ...
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-enforcer-plugin</artifactId>
    <version>1.4</version>
    <dependencies>
      <dependency>
        <groupId>com.hubspot.maven.plugins</groupId>
        <artifactId>dependency-management-plugin</artifactId>
        <version>0.4</version>
      </dependency>
    </dependencies>
    <executions>
      <execution>
        <goals>
          <goal>enforce</goal>
        </goals>
        <configuration>
          <fail>true</fail>
          <rules>
            <dependencyManagementRule implementation="com.hubspot.maven.plugins.dependency.management.DependencyManagementRule">
              <requireManagement>
                <dependencies>true</dependencies>
                <plugins>true</plugins>
                <allowVersions>false</allowVersions>
                <allowExclusions>false</allowExclusions>                
                <exceptions>
                  <exception>com.example:*</exception>
                </exceptions>                
              </requireManagement>
            </dependencyManagementRule>
          </rules>
        </configuration>
      </execution>
    </executions>
  </plugin>
  ...
</plugins>