添加新依赖项时 Bean 名称不明确

Bean name is ambiguous when adding a new dependency

我在我的 pom 文件中添加了这个 picketlink 依赖项:

 <dependency>
        <groupId>org.picketlink</groupId>
            <artifactId>picketlink</artifactId>
        <version>2.7.1.Final</version>
    </dependency>

我收到这个错误:

WELD-001414: Bean name is ambiguous. Name dsWindowContext resolves to beans

我要添加的依赖项是一个 UberJar,其中包含 Deltaspike JAR,这会导致冲突,因为显然 Deltaspike 已经导入到我的项目中,但我在 pom.xml 中找不到.

我正在使用 Wildfly 10、JEE 7、Picketlink 2.7,如何删除 Deltaspike 以及在哪里可以找到它?

添加一个uber jar作为依赖总是有问题的,但我总是避不开。

要在您的项目中找到 Deltaspike,您可以使用 dependency:tree。它显示了包含 Deltaspike 的所有位置。

在运行时摆脱它的最简单方法是在 dependencyManagement 部分将其声明为 provided

更正确的做法是找到依赖关系树中包含工件的所有位置,并将其从所有位置中排除。这也消除了编译时的工件。