сварка-junit5 со сварным швом 3

Недавно мы обновили 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>

Это переопределяет версию по умолчанию для сварки-se-core 2.4.8.Final, которая определена в сварке-junit5. Но кажется, что weld-junit5 зависит от структуры сварки 2.x

Сварка 3 на своей странице github сообщает, что сварка 3 поддерживается, но нет описания того, как ее использовать. Я нашел это в POM сварки-junit5:

<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>

Но у меня не активировался этот профиль.

Как это решить?


person Marc von Renteln    schedule 28.02.2019    source источник


Ответы (1)


С weld-se-shaded вместо weld-se-core работает.

person Marc von Renteln    schedule 01.03.2019
comment
Хорошо, что ты разобрался! Кстати, Weld-junit переключится на CDI 2.0 и Weld 3.x в качестве настроек по умолчанию. См. этот выпуск — github.com/weld/weld-junit/issues/68 - person Siliarus; 04.03.2019
comment
Чтобы расширить, профиль предназначен для тестирования с помощью Weld 3. Часть профиля находится в родительском, а часть — в junit5. В целом это переопределяет версию ядра Weld SE и добавляет модуль EJB. То, чего у вас не было, на самом деле (согласно исключению) CDI 2.0 API. Артефакт shaded также вносит это. - person Siliarus; 04.03.2019