Maven配置文件删除依赖项

Kam*_*mil 7 maven maven-profiles

我有pom声明的依赖关系A,B和C.是否有可能创建一个删除依赖关系的配置文件,以便当我使用该配置文件进行编译时,我最终得到编译后的依赖关系A和B(没有C)?

FrV*_*aBe 14

我不知道在配置文件中排除顶级依赖项的方法(<exlusions>仅适用于传递依赖项).但是,您可以在默认配置文件中指定"正常"依赖关系,并在单独的配置文件中指定减少的依赖关系,例如:

<profiles>

    <profile>
        <id>default</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <dependencies>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.14</version>
            </dependency>
        </dependencies>
    </profile>

    <profile>
        <id>excludeDependency</id>
        <dependencies>
        </dependencies>
    </profile>

</profiles>
Run Code Online (Sandbox Code Playgroud)

如果在某处使用log4j,使用'excludeDependency'配置文件进行编译将失败.

您的用例不明确.也许其他一些解决方案(如可选依赖项提供的依赖项)也可满足您的需求.看看这些可能性.