Maven не может видеть jBehave

Я только начинаю изучать jBehave и Maven (в Eclipse). Я установил JBehave Eclipse 1.0.0.20140605-071 и добавил его к моим зависимостям Maven - соответствующий бит pom.xml выглядит (отредактирован после ответа):

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.wmaop</groupId>
    <artifactId>wm-jbehave</artifactId>
    <version>1.0.0</version>
    <scope>test</scope>
  </dependency>
</dependencies>
<repositories>
  <repository>
    <id>jitpack.io</id>
    <url>https://jitpack.io</url>
  </repository>
</repositories>

Это дает мне ошибку:

missing artefact org.wmaop:wm-jbehave.jar:1.0.0

Если я попытаюсь построить, я получаю ошибку:

Failure to find org.wmaop:wm-jbehave:jar:1.0.0 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

"Создание тестового проекта с Maven" учебник говорит:" Если в проекте существуют ошибки, откройте файл pom.xml, чтобы проверить, зависимость wm-jbehave не найдена. Убедитесь, что ваш Дизайнер имеет доступ к Интернету для извлечения зависимостей jar, но я не знаю, что это значит - компьютер, безусловно, имеет доступ к Интернету - я печатаю это на нем.

Как устранить эту ошибку?

Ответ 1

Я даже не уверен, где WM-AOP вписывается, за исключением того, что он упоминается в сообщение об ошибке, которое я получаю.

Кажется, вы даже не знаете, что такое WM-AOP:)
Этот учебник (из вашего вопроса) показывает, как включить и запустить JBehave вместе со своими webMethods Designer.
Другими словами - это автономный продукт (сервер интеграции), который использует другой автономный проект JBehave
Чтобы запустить этот учебник, вам нужно сначала загрузить, установить и настроить службы webMethods Designer и Integration Server Flow, а затем создать проект который использует этот сервер и JBehave для запуска тестов на этом сервере.


Но вам не нужны эти вещи, чтобы выучить JBehave. JBehave - автономный продукт, который можно запускать во многих средах даже на чистой Java (JDK).

Просто выполните следующие действия


1. В Eclipse - щелкните проект New/Maven введите описание изображения здесь


2. В следующем диалоговом окне нажмите "Далее"

введите описание изображения здесь


3. На следующей странице введите "jbehave-simple-archetype", выберите версию 4.1 и нажмите "Далее"
Примечание. Не используйте последнюю версию 4.1.1, потому что она не работает (есть ошибка, которая будет решена в следующей версии 4.1.2 через 1-2 недели введите описание изображения здесь


4. Введите идентификатор группы и идентификатор артефакта вашего проекта и нажмите "Готово" . введите описание изображения здесь


Что все - ваш проект JBehave готов.


В src/main/resources/org/example/myJbehave/stories/ вы найдете my.story с примером:

Scenario: A scenario with some pending steps

Given I am a pending step
And I am still pending step
When a good soul will implement me
Then I shall be happy

В src/main/java/org/example/myJbehave/steps/ вы найдете класс MySteps.java. Измените это следующим образом:

import org.jbehave.core.annotations.Alias;
import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;

public class MySteps {

    @Given("I am a pending step")
    @Alias("I am still pending step")
    public void given_i_am_pending_step() {

        System.out.println("Tihis is implementation of GIVEN");
    }

    @When("a good soul will implement me")
    public void when_a_good_soul_will_implement_me() {
        System.out.println("Tihis is implementation of WHEN");
    }

    @Then("I shall be happy")
    public void then_i_shall_be_happy() {
        System.out.println("Tihis is implementation of THEN");
    }
}

В /src/main/java/org/example/myJbehave/ вы найдете MyStories.java
Этот класс содержит конфигурацию и код начальной загрузки
Щелкните правой кнопкой мыши на ней с помощью мыши, затем выберите "Запустить как /JUnit test", и история будет выполнена введите описание изображения здесь

введите описание изображения здесь


На вкладке консоли вы увидите следующий результат:

Processing system properties {}
Using controls EmbedderControls[batch=false,skip=false,generateViewAfterStories=true,ignoreFailureInStories=true,ignoreFailureInView=true,verboseFailures=false,verboseFiltering=false,storyTimeouts=60,threads=2,failOnStoryTimeout=false]

(BeforeStories)
Running story org/example/myJbehave/stories/my.story
Tihis is implementation of GIVEN
Tihis is implementation of GIVEN
Tihis is implementation of WHEN
Tihis is implementation of THEN

(org/example/myJbehave/stories/my.story)
Scenario: A scenario with some pending steps
Given I am a pending step
And I am still pending step
When a good soul will implement me
Then I shall be happy



(AfterStories)
Generating reports view to 'C:\Users\irko\eclipse-workspace1\myJbehave\target\jbehave' using formats '[stats, console, txt, html, xml]' and view properties '{navigator=ftl/jbehave-navigator.ftl, views=ftl/jbehave-views.ftl, reports=ftl/jbehave-reports.ftl, nonDecorated=ftl/jbehave-report-non-decorated.ftl, decorated=ftl/jbehave-report-decorated.ftl, maps=ftl/jbehave-maps.ftl}'
Reports view generated with 2 stories (of which 0 pending) containing 1 scenarios (of which 0 pending)

Примечание. Следуйте этим шагам, чтобы установить плагин JBehave Eclipse, содержащий полезный редактор *.story.

Ответ 2

Насколько я вижу, это не на центральном репо Maven, поэтому нет wodner, но он доступен на GitHub, поэтому позволяет получить его с помощью JitPack

Добавьте это в свой POM

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>

Ответ 3

попробуйте это репо вместо: https://repo.azure.jenkins.io/public.

Или создайте проект в локальном режиме:

git clone https://github.com/wmaop/wm-jbehave.git --branch  wm-jbehave-1.0.0
cd wm-jbehave
mvn clean install

Ответ 4

Согласно опубликованной ошибке:

"Не удалось найти org.wmaop: wm-jbehave: jar: 1.0.0 в https://repo.maven.apache.org/maven2 был кэширован в локальном репозитории, разрешение не будет повторно загружено до тех пор, пока не истечет интервал обновления центрального элемента или не будет принудительно обновлено обновление → [Справка 1]"

Кажется, проект требует принудительного обновления maven для устранения отсутствующих артефактов. Просто нажмите правой кнопкой мыши на свой проект → Maven → Обновить проект. Убедитесь, что установлено "Force Update of Snapshots/Releases".

Ответ 5

Ниже в записях зависимостей maven и репозитория работали для компиляции проекта maven, основанного на ссылка в вашем вопросе.

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.wmaop</groupId>
        <artifactId>wm-jbehave</artifactId>
        <version>1.1.1</version>
        <scope>test</scope>
        <exclusions>
            <exclusion>
                <groupId>com.entrust</groupId>
                <artifactId>toolkit</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.softwareag.webmethods</groupId>
                <artifactId>wm-isserver</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.softwareag.webmethods</groupId>
                <artifactId>wm-isclient</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
</dependencies>
<repositories>
    <repository>
        <id>bintray.io</id>
        <url>https://dl.bintray.com/wmaop/maven</url>
    </repository>
</repositories>

Обратите внимание, что в учебнике также требуется дополнительная настройка для запуска истории HelloWorld.

Возможно, было бы легче выполнить ответ, предоставленный @krokodilko, используя простой jbehave maven archetype.