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

CodeGenerator的OpenDaylight Yangtools codeGeneratorClass不能为null

刘高峯
2023-03-14

我能够使用opendaylight yangtools从Yang文件生成POJO。然而,在mvn生成源代码或mvn清理构建完成后,我经常会遇到此错误:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.816 s
[INFO] Finished at: 2018-07-22T10:09:59+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.opendaylight.yangtools:yang-maven-plugin:2.0.8-SNAPSHOT:generate-sources (default) on project odl-yang-generator-poc: Execution default of goal org.opendaylight.yangtools:yang-maven-plugin:2.0.8-SNAPSHOT:generate-sources failed: codeGeneratorClass for CodeGenerator cannot be null

Caused by: java.lang.NullPointerException: codeGeneratorClass for CodeGenerator cannot be null
    at com.google.common.base.Preconditions.checkNotNull (Preconditions.java:900)
    at org.opendaylight.yangtools.yang2sources.plugin.ConfigArg$CodeGeneratorArg.check (ConfigArg.java:71)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.instantiateGenerators (YangToSourcesProcessor.java:219)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.conditionalExecute (YangToSourcesProcessor.java:135)
    at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute (YangToSourcesMojo.java:123)

这是我的pom:

<parent>
        <groupId>org.opendaylight.mdsal</groupId>
        <artifactId>binding-parent</artifactId>
        <version>0.13.0-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <build>
    <plugins>
            <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>
                            <yangFilesRootDir>src/main/yang</yangFilesRootDir>
                                <codeGenerators>
                                <generator>
                                        org.opendaylight.mdsal.maven.sal.api.gen.plugin.CodeGeneratorImpl
                                    <outputBaseDir>
                                        target/generated-sources
                                    </outputBaseDir>
                                </generator>
                                </codeGenerators>
                            <inspectDependencies>true</inspectDependencies>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.opendaylight.mdsal</groupId>
                        <artifactId>maven-sal-api-gen-plugin</artifactId>
                        <version>0.13.0-SNAPSHOT</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

显然,生成器是在生成文件后找到的。导致异常的原因是什么?

共有1个答案

刘阳舒
2023-03-14

组织。开放日光。mdsal公司。专家萨尔。api。gen.plugin。CodeGeneratorImpl不正确-它应该是org。开放日光。mdsal公司。结合专家api。gen.plugin。CodeGeneratorImpl。

然而,您是从绑定父级派生pom的,因此根本不需要重新定义yang maven插件,因为它已经由绑定父级定义/提供了。

 类似资料:
  • CodeGenerator 是一个使用 Freemarker 和 Velocity 模板来生代码的工具。 本生成器只是将数据库中的表结构数据提取出来,然后将这份结构模型提交给模板引擎, 根据你自定义的模板生成你需要的代码。 配置文件     <?xml version="1.0" encoding="utf-8" standalone="no"?>    <configuration>      

  • 本文向大家介绍sqlserver登陆后报不能为空不能为null的错误,包括了sqlserver登陆后报不能为空不能为null的错误的使用技巧和注意事项,需要的朋友参考一下 sql server 2012 值不能为null。参数名:viewinfo (microsoft.sqlserver.managemenmen) 是因为在C:\Users\你的用户名\AppData\Local\Temp\中,缺

  • 我是编程初学者。当我启动我的应用程序时,我有一条错误消息,不知道如何处理代码。有人能帮我吗? 这是我的代码: 活动: 片段: 适配器: 错误堆栈跟踪: 2020-02-01 13:37:17.972 10729-10729/?E/AndroidRuntime: FATAL EXCEPTION: main Process:hread.main, PID: 10729hread.java:6494Ru

  • 尊敬的开发者们。 我要问你一个问题,我觉得很难为我解决,只是因为我不知道为什么要回答,我的意思是什么??让我看看。JBoss文档中的关联没有得到全面的答案:为什么我应该使用JoinTable而不是外键,并且我不完全理解映射是如何工作的,我这样说是什么意思?我知道什么是协会是ManyToMany或ManyToOne等,他们的目的是什么,但他们如何工作和协作彼此不需要回答关于双向或单向或联合或协会,我

  • 我试图在Gradle多项目中使用SonarQube。我搞不懂发生了什么事! sonarqube gradle插件版本为2.5,通过令牌与gradle服务器6.5对话。我已经证实他们彼此交谈过 Gradle项目正常编译,jacoco也成功地转换了所有子项目的所有代码 非常感谢任何指点。堆栈跟踪: > 出错的地方:任务': sonarqube'执行失败。 尝试:使用--info或--debug选项运行

  • 以下是我的进口: 奇怪的是,它以前曾经工作过,我不知道发生了什么会影响这一点。