Java 如何确保maven依赖项在给定的范围内?

Java 如何确保maven依赖项在给定的范围内?,java,maven,dependencies,Java,Maven,Dependencies,在我正在从事的一个项目中,我们发现Oracle coherence产品被我们的EAR用作编译依赖项。这触发了已经检测到的奇怪的类路径问题,一致性现在是提供的依赖项 然而,我想确保没有人会再犯这样的错误:直接或不直接使用一致性作为编译。那么,在给定一组依赖约束的情况下,是否有任何maven插件/解决方案可以确保所有maven模块都强制执行这些约束?您应该深入了解支持这些约束的插件/解决方案 <project> [...] <build> <plugin

在我正在从事的一个项目中,我们发现Oracle coherence产品被我们的EAR用作
编译
依赖项。这触发了已经检测到的奇怪的类路径问题,一致性现在是
提供的
依赖项


然而,我想确保没有人会再犯这样的错误:直接或不直接使用一致性作为
编译。那么,在给定一组依赖约束的情况下,是否有任何maven插件/解决方案可以确保所有maven模块都强制执行这些约束?

您应该深入了解支持这些约束的插件/解决方案

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.4</version>
        <executions>
          <execution>
            <id>enforce-banned-dependencies</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <bannedDependencies>
                  <excludes>
                    <exclude>com.xyz:abc:*:jar:compile</exclude>
                    <exclude>com.xyz:abc:*:jar:runtime</exclude>
                    <exclude>com.xyz:abc:*:jar:test</exclude>
                  </excludes>
                </bannedDependencies>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

[...]
org.apache.maven.plugins
maven enforcer插件
1.4
强制执行禁止的依赖项
执行
com.xyz:abc:*:jar:compile
com.xyz:abc:*:jar:runtime
com.xyz:abc:*:jar:test
真的
[...]