Не удалось найти определение функции для usr: arquillian-support-1.0 - PullRequest
0 голосов
/ 11 февраля 2020

Liberty 20.0.0.1/AdoptOpenJdk 8

openjdk version "1.8.0_242"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.242-b08, mixed mode)

Сервер Liberty Arquillian 1.0.6 (управляемый свободой). xml config.

<server description="new server">

    <!-- Enable features -->
    <featureManager>
        <feature>javaee-8.0</feature>
        <feature>usr:arquillian-support-1.0</feature>
        <feature>localConnector-1.0</feature>
    </featureManager>

Когда я добавлю usr:arquillian-support-1.0 функция для сервера. xml и запустите сервер приложений и получите информацию об ошибке, подобную этой.

[ERROR   ] CWWKF0001E: A feature definition could not be found for usr:arquillian-support-1.0

Пример проекта здесь .

Ответы [ 2 ]

0 голосов
/ 11 февраля 2020

Функция поддержки Arquillian необходима только для правильного сообщения об исключении, которое произошло, когда не удалось запустить тестовое приложение, поэтому в зависимости от того, что вы тестируете, оно может вообще не понадобиться.

Если вы если вам это нужно, сама функция распространяется в виде zip-файла, который просто нужно извлечь на ваш сервер свободы. Вы можете настроить pom. xml, чтобы извлечь его как часть вашей сборки, используя maven-dependency-plugin:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-dependency-plugin</artifactId>
  <version>3.1.1</version>
  <executions>
    <execution>
      <id>extract-support-feature</id>
      <phase>pre-integration-test</phase>
      <goals>
        <goal>unpack</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <artifactItems>
      <artifactItem>
        <groupId>io.openliberty.arquillian</groupId>
        <artifactId>arquillian-liberty-support</artifactId>
        <version>1.0.6</version>
        <type>zip</type>
        <classifier>feature</classifier>
        <overWrite>false</overWrite>
        <outputDirectory>${project.build.directory}/liberty/wlp/usr</outputDirectory>
      </artifactItem>
    </artifactItems>
  </configuration>
</plugin>

Пример взят из: https://github.com/OpenLiberty/liberty-arquillian/tree/master/liberty-support-feature

Глядя на ваш пример проекта, похоже, что вы уже используете плагин maven-dependecy для развертывания jar-файла derby, поэтому вам, возможно, придется немного адаптировать этот пример, чтобы он работал.

I думаю вы захотите переместить блоки <configuration> внутри блоков <execution>, чтобы каждое выполнение имело отдельную конфигурацию, а затем включить оба блока <execution> в один и тот же блок <plugin>, но я ' Я не очень уверен в себе с Maven.

0 голосов
/ 11 февраля 2020

В настоящее время невозможно использовать функцию usr: arquillian-support-1.0 с Open Liberty. Здесь есть две части.

Используемый вами дистрибутив открытой свободы не включает функцию поддержки Arquillian. В pom. xml нет ничего, что позволило бы ему работать. Плагин Liberty maven действительно имеет некоторую поддержку для установки дополнительных функций, однако он (в настоящее время) не работает с функциями usr, такими как функция arquillian-support-1.0. Я думаю, что это отслеживается этой проблемой в GitHub.

Так что сейчас я просто удалил эту строку с сервера. xml. Я бы также посоветовал взглянуть на плагин liberty-maven-plugin, я думаю, что он может значительно упростить конфигурацию maven, которую вы делаете, чтобы заставить Liberty работать, и когда добавлена ​​поддержка функций usr, она понадобится вам для получения arquillian-support- 1.0 добавлено.

...