Модуль Maven Imported [ietf-inet-types] не найден

У меня установлен OpenDayLight Boron-SR3 и тестовый файл YANG в /opt/odl_l3vpn/dave/api/src/main/yang.

module DaveTest {

namespace "urn:opendaylight:params:xml:ns:DaveTest";
prefix dm;

import "ietf-inet-types" {
    prefix ietf-yang;
}

description "Dave testing file";

revision "2017-04-17" {
    description "Initial version.";
}



    container testing-vars {

            list test-list {

                    key "vpn-transaction-id";
                    unique "vpn-transaction-id";

                    leaf vpn-transaction-id {
                            type string;
                            description "Generated for the model.";
                    }

                    leaf vpn-id {
                            type string;
                            description "VPN ID for the VPN.";

                    }

            }
    }
}

Когда я компилирую файл, используя 'mvn clean install -nsu', я получаю сообщение об ошибке:

[ОШИБКА] Не удалось выполнить цель org.opendaylight.yangtools:yang-maven-plugin:1.0.3-Boron-SR3: генерировать-источники (привязка) для проекта dave-api: yang-to-sources: невозможно проанализировать файлы yang from /opt/odl_l3vpn/dave/api/src/main/yang: импортированный модуль [ietf-inet-types] не найден. [в META-INF/yang/DaveTest.yang:6:4]

Полный стек ниже:

[ERROR] Failed to execute goal org.opendaylight.yangtools:yang-maven-plugin:1.0.3-Boron-SR3:generate-sources (binding) on project dave-api: yang-to-sources: Unable to parse yang files from /opt/odl_l3vpn/dave/api/src/main/yang: Imported module [ietf-inet-types] was not found. [at META-INF/yang/DaveTest.yang:6:8] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.opendaylight.yangtools:yang-maven-plugin:1.0.3-Boron-SR3:generate-sources (binding) on project dave-api: yang-to-sources: Unable to parse yang files from /opt/odl_l3vpn/dave/api/src/main/yang
at      org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at     org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
at     org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: yang-to-sources: Unable to parse yang files from /opt/odl_l3vpn/dave/api/src/main/yang
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.processYang(YangToSourcesProcessor.java:222)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.execute(YangToSourcesProcessor.java:95)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.conditionalExecute(YangToSourcesProcessor.java:118)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesMojo.execute(YangToSourcesMojo.java:119)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 20 more
Caused by: org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException: Imported module [ietf-inet-types] was not found. [at META-INF/yang/DaveTest.yang:6:8]
at org.opendaylight.yangtools.yang.parser.spi.meta.InferenceException.throwIf(InferenceException.java:47)
at org.opendaylight.yangtools.yang.parser.stmt.rfc6020.ImportStatementDefinition$1.prerequisiteFailed(ImportStatementDefinition.java:116)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.ModifierImpl.failModifier(ModifierImpl.java:93)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.failModifiers(SourceSpecificContext.java:294)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.addSourceExceptions(BuildGlobalContext.java:268)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.completePhaseActions(BuildGlobalContext.java:343)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:200)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:128)
at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:145)
at org.opendaylight.yangtools.yang2sources.plugin.YangToSourcesProcessor.processYang(YangToSourcesProcessor.java:191)
... 25 more

Мой pom.xml в основном каталоге /opt/odl_l3vpn/dave. Я добавил зависимость 'ietf-inet-types' в 'build', но мог поместить ее в неправильное место из-за недостатка знаний о pom-файлах.

  <build>
<plugins>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <configuration>
      <skip>true</skip>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <configuration>
      <skip>true</skip>
    </configuration>

    <dependencies>
      <dependency>
        <groupId>org.opendaylight.mdsal.model</groupId>
        <artifactId>ietf-inet-types</artifactId>
        <version>2010.09.24.8.5-SNAPSHOT</version>
        <type>bundle</type>
      </dependency>
    </dependencies>

  </plugin>
</plugins>

Где будет правильное место для добавления зависимости, чтобы мой YANG-файл мог компилироваться? Или вы можете указать мне правильное направление? Заранее спасибо.

2 ответа

Спасибо за Дэвида, я смог выяснить ответ, сделав следующее:

Я загрузил theietf-yang-types-2010.09.24.9.3-Boron-SR3.jar с https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/mdsal/model/ietf-inet-types/2010.09.24.9.3-Boron-SR3/ и поместите его в каталог / tmp.

Затем я изменил проект /api/pom.xml, включив в него информацию о зависимостях.

Затем я выполнил следующую команду в корневом каталоге проекта: mvn install:install-file -DgroupId=org.opendaylight.mdsal.model -DartifactId=ietf-inet-types -Dversion=2010.09.24.8.5-SNAPSHOT -Dpackaging=bundle -Dfile=/ TMP / IETF-янь-типов-2010.09.24.9.3-бор-SR3.jar

'Mvn clean install -nsu' работал нормально, и все скомпилировано.

Ну и дела, кое-что об OpenDaylight, я действительно могу ответить.

В выходных данных журнала вы увидите упоминание "org.opendaylight.yangtools: yang-maven-plugin". Если вы не настроите это, вы получите значения по умолчанию, что не так много. Вам нужно научиться настраивать это. Вы должны быть в состоянии найти документацию для этого на сайте ODL. Если у вас есть плагин YangIDE Eclipse (который, к сожалению, больше не поддерживается), вы можете увидеть примеры в проектах, которые он создает.

В частности, и я не помню синтаксис, я считаю, что зависимости Yang должны быть указаны как часть конфигурации yang-maven-plugin.

Другие вопросы по тегам