Blacklist Maven dependencies

后端 未结 2 680
终归单人心
终归单人心 2020-12-30 02:59

Is there a way e.g. a Maven plug in that can take a list of unwanted/black listed dependencies (direct and transitive) and fails the build if it detects one of listed depend

相关标签:
2条回答
  • 2020-12-30 03:14

    Yes, the enforcer plugin supports this with its bannedDependencies rule.

    0 讨论(0)
  • 2020-12-30 03:23

    You can ban some dependencies using the maven-enforcer-plugin.

    Here is their example with updates for your exclusion of Apache Commons Logging.

    <project>
      [...]
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>1.1.1</version>
            <executions>
              <execution>
                <id>enforce-banned-dependencies</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <bannedDependencies>
                      <excludes>
                        <exclude>commons-logging:commons-logging</exclude>
                      </excludes>
                    </bannedDependencies>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      [...]
    </project>
    

    The output when running mvn install will be:

    [WARNING] Rule 1: org.apache.maven.plugins.enforcer.BannedDependencies failed with message:
    Found Banned Dependency: commons-logging:commons-logging:jar:1.1.1
    Use 'mvn dependency:tree' to locate the source of the banned dependencies.
    

    It all ends with a BUILD FAILURE.

    0 讨论(0)
提交回复
热议问题