我有一个关于Carbon发行的hello-world ODL项目。我将POM依赖项从公共存储库更改为最新版本,现在在编译“ impl”项目时遇到了失败:
cannot access org.opendaylight.yangtools.yang.binding.RpcOutput [ERROR] class file for org.opendaylight.yangtools.yang.binding.RpcOutput not found
这是由于“ api”项目中yang工具生成的源。源包含“ RpcOutput”的导入,但“ impl”项目找不到。
我将'api'项目中的POM更改为Carbon,它工作正常。
我针对“ api”项目的POM是
<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失败-org.opendaylight.mdsal.binding-parent
项目的最新版本的ODL和yang工具发生了什么变化?
在简单的“ 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的类文件”错误而失败。
“ impl”项目pom是
<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>
主要pom是
<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>
答案 0 :(得分:1)
您需要使用the appropriate versions for Fluorine:
binding-parent
0.13.2 您还需要从config-parent
迁移到BluePrint,有关详细信息,请参见the OpenDaylight wiki BluePrint page。 config-parent
在氟中不再可用。