Ошибка компиляции Привет, мир, пример проблемы инструментов Opendaylight Fluorine - yang - PullRequest
0 голосов
/ 11 мая 2019

У меня был рабочий проект ODL hello-world по выпуску Carbon. Я изменил зависимости POM на последнюю версию из общедоступного репозитория, и теперь я получаю ошибку при компиляции проекта 'impl':

cannot access org.opendaylight.yangtools.yang.binding.RpcOutput
[ERROR]   class file for org.opendaylight.yangtools.yang.binding.RpcOutput not found

Это связано с источником, сгенерированным инструментами ян в проекте api. Источники содержат импорт «RpcOutput», но проект «impl» не находит его.

Я изменил свой POM в проекте api на Carbon, и он отлично работает.

Мой POM для проекта 'api'

<parent>
    <groupId>org.opendaylight.mdsal</groupId>
    <artifactId>binding-parent</artifactId>
    <!--<version>0.10.4-Carbon</version>--> <--this works-->
    <version>4.0.1</version>  <--this fails-->
    <relativePath/>
  </parent>

Версии 4.0.1 и 3.0.6 терпят неудачу - что изменилось в последней версии инструментов ODL и yang из проекта org.opendaylight.mdsal.binding-parent?

Сбой компиляции в проекте 'impl', который прост:

public class HelloWorldImpl implements HelloService{

    @Override
    public ListenableFuture<RpcResult<HelloWorldOutput>> helloWorld(HelloWorldInput input) {
        HelloWorldOutputBuilder hout = new HelloWorldOutputBuilder();
        hout.setGreeting("hello" + input.getName());
        return RpcResultBuilder.success(hout.build()).buildFuture();
    }
} 

Сбой при ошибке «файл класса для org.opendaylight.yangtools.yang.binding.RpcOutput not found».

Проектная помпа 'impl' -

 <parent>
  <groupId>org.opendaylight.controller</groupId>
  <artifactId>config-parent</artifactId>
  <!--<version>0.6.4-Carbon</version>--><!--this was the old working--> 
  <version>0.8.4</version>  <!--this is also the latest ver-->
  <relativePath/>
 </parent>

Основная помпа

<parent>
   <groupId>org.opendaylight.odlparent</groupId>
   <artifactId>odlparent</artifactId>
   <!--<version>1.8.4-Carbon</version>--><!--this was old working ver-->
   <version>5.0.0</version> <!--this is also the latest ver-->
   <relativePath/>
  </parent>

1 Ответ

1 голос
/ 13 мая 2019

Вам необходимо использовать соответствующие версии для фтора :

  • binding-parent 0.13.2
  • ODL Родитель 3.1.6

Вам также необходимо перейти с config-parent на BluePrint, см. на странице BlueDrint вики OpenDaylight для получения подробной информации. config-parent больше не доступен во фторе.

Поскольку вы все равно мигрируете, я бы порекомендовал перейти прямо к Неон . Подробное руководство поможет вам перейти с фтора на неон.

...