最近我们将Weld升级到3.0.3 Wildfly (与Wildfly 12中的版本相同)。现在weld-junit5 1.3.1 junit5(最新版本)抛出一个异常
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-se-core 2.4.8Final的默认版本,该版本在weld-juit5中定义。但是,weld -juit5似乎依赖于weld 2.x的组织。
weld-junit5在其github页面上声明支持weld 3,但没有说明如何使用它。我在weld-juit5的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>但我没有激活这个资料。
如何解决这个问题呢?
发布于 2019-03-02 01:06:27
使用weld-se-shaded而不是weld-se-core,它可以工作。
https://stackoverflow.com/questions/54926164
复制相似问题