0

最近我们将 Weld 升级到 3.0.3.Final(Wildfly 12 中的那个)。现在weld-junit5 1.3.1.Final(最新版​​本)抛出异常

java.lang.NoSuchMethodError: javax.enterprise.inject.spi.AfterBeanDiscovery.addBean()Ljavax/enterprise/inject/spi/configurator/BeanConfigurator;

我们在依赖管理中添加了weld-se-core:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.jboss.weld.se</groupId>
                <artifactId>weld-se-core</artifactId>
                <version>3.0.3.Final</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

这推翻了在weld-junit5 中定义的weld-se-core 2.4.8.Final 的默认版本。但似乎weld-junit5依赖于weld 2.x的结构

Weld-junit5 在其 github 页面上声明支持焊接 3,但没有描述如何使用它。我在weld-junit5的POM中发现了这个:

<profile>
         <id>weld3</id>
         <activation>
            <activeByDefault>false</activeByDefault>
            <property>
               <name>env.WELD_JUNIT_PROFILE</name>
               <value>weld3</value>
            </property>
         </activation>
         <dependencies>
            <dependency>
               <groupId>org.jboss.weld.module</groupId>
               <artifactId>weld-ejb</artifactId>
               <version>${version.weld}</version>
               <scope>test</scope>
            </dependency>
         </dependencies>
      </profile>

但我没有激活此配置文件。

如何解决?

4

1 回答 1

0

用它weld-se-shaded代替weld-se-core它有效。

于 2019-03-01T17:06:26.977 回答