当前位置: 首页 > 知识库问答 >
问题:

使用Yangtools从yang文件生成POJO失败

贺景铄
2023-03-14

我正在尝试根据本指南使用OpenDaylight从Yang文件生成Pojos。我从OpenDaylight github克隆了Yang tools,并使用mvn清洁安装构建了项目

我在pom中添加了以下内容:

<plugin>
           <groupId>org.opendaylight.yangtools</groupId>
           <artifactId>yang-maven-plugin</artifactId>
           <version>2.0.8-SNAPSHOT</version>
           <executions>
               <execution>
                   <goals>
                       <goal>generate-sources</goal>
                   </goals>
                   <configuration>
                       <!-- directory containing yang files to parse and generate code -->
                       <yangFilesRootDir>src/main/yang</yangFilesRootDir>
                       <codeGenerators>
                           <generator>
                               <codeGeneratorClass>
                                   org.opendaylight.yangtools.maven.sal.api.gen.plugin.CodeGeneratorImpl
                               </codeGeneratorClass>
                               <!-- directory into which generated files will be placed -->
                               <outputBaseDir>
                                   target/generated-sources
                               </outputBaseDir>
                           </generator>
                       </codeGenerators>
                       <!-- if true, plugin will search for yang files also in dependent projects -->
                       <inspectDependencies>true</inspectDependencies>
                   </configuration>
               </execution>
           </executions>
           <dependencies>
               <dependency>
                   <groupId>org.opendaylight.yangtools</groupId>
                   <artifactId>maven-sal-api-gen-plugin</artifactId>
                   <version>0.7.4-Lithium-SR4</version>
                   <type>jar</type>
               </dependency>
           </dependencies>
       </plugin>

但是我无法生成源。我收到以下错误:

[ERROR] Failed to execute goal org.opendaylight.yangtools:yang-maven-plugin:2.0.8-SNAPSHOT:generate-sources (default) on project odl-poc: Execution default of goal org.opendaylight.yangtools:yang-maven-plugin:2.0.8-SNAPSHOT:generate-sources failed: An API incompatibility was encountered while executing org.opendaylight.yangtools:yang-maven-plugin:2.0.8-SNAPSHOT:generate-sources: java.lang.AbstractMethodError: Method org/opendaylight/yangtools/maven/sal/api/gen/plugin/CodeGeneratorImpl.generateSources(Lorg/opendaylight/yangtools/yang/model/api/SchemaContext;Ljava/io/File;Ljava/util/Set;Ljava/util/function/Function;)Ljava/util/Collection; is abstract

我做错了什么?

共有1个答案

龚镜
2023-03-14

看起来像是版本不兼容——您引用的是yang-maven-plugin版本2.0.8-SNAPSHOT,这是当前未发布的主分支,以及依赖maven-sal-api-gen-plugin版本0.7.4-Litial-SR4,这是5个主要版本之前的版本,并且早已过时。

 类似资料:
  • 我一直在努力寻找一些可以从java中的yang模型生成示例xml/json数据的工具,例如对于xsd,有一些工具可以生成示例xml。 我试过平:1。它是用Python编写的。2.转换后,它给了我yin格式,这是相当于yang规范的xml。例如,对于以下阳代码,如果我使用pyang将其转换为阴: 这就是我得到的- 相反,我想要的是 这样我就可以得到xml,输入详细信息并根据相同的数据进行验证。

  • 问题内容: 我有的: 我正在从pojo生成JSON模式。我的生成架构的代码如下所示: 我通过上面的代码生成了几个模式。其中一个pojos具有内部嵌入式枚举,以限制可能的值,如下所示: 上面的代码应将传递给“星期一”,“星期二”,“星期三”等的JSON数据中可能的String值限制。 当我在有问题的代码上运行模式生成器时,我希望得到类似以下模式的内容: 但是相反,我得到这个: 我在Jackson模式

  • 我正在从事一个使用Java、C#和C应用程序的项目。为了在他们之间进行通信,我尝试使用Google协议缓冲区。我正在使用以下命令。原型文件,取自示例: 我指的是以下教程:https://developers.google.com/protocol-buffers/docs/csharptutorial 其他语言的教程也在那里。 我为每种语言尝试了以下命令行参数: Java: C:\ProtoBuf

  • 我已经编写了一个web服务定义作为OpenAPI文档。我使用的openapi生成器maven插件总是使用poms和gradle构建脚本生成整个项目,但我只需要生成POJO,可能还需要生成API客户端。它应该同样适用于JaxB或JaxWS代码生成器。 那么有没有办法告诉插件只生成Java代码呢?也许有另一个插件可以完成这项工作? 以下是我的配置:

  • 我想从HTML模板中提取一部分,并将其转换为PDF文件,以便用户可以选择下载。(例如,单击按钮后)。 我找到了一个名为jsPDF的库,我将如何在Angular2应用程序(RC4)中使用jsPDF? 谢谢你

  • 我试图为Linux动态库(.so文件)创建一个hello world项目。所以我有一个文件HELLO.C: 如何从命令行使用gcc创建导出的.so文件?