You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenDaylight Netconf-Testtool源码构建失败求助

解决OpenDaylight Netconf Testtool构建时的父POM解析错误

你遇到的是Maven无法解析OpenDaylight快照版本依赖的典型问题——这类SNAPSHOT开发版本的依赖不会同步到Maven中央仓库,而且直接构建子模块也容易导致依赖链断裂。下面是几个针对性的解决方案:

1. 配置Maven使用OpenDaylight专属仓库

首先要确保你的Maven settings.xml(通常在~/.m2/settings.xml或Maven安装目录的conf/settings.xml下)包含OpenDaylight的发布和快照仓库,这样Maven才能找到ODL专属的依赖包。

将以下配置添加到settings.xml中:

<settings>
  <profiles>
    <profile>
      <id>opendaylight</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <repositories>
        <repository>
          <id>opendaylight-release</id>
          <name>OpenDaylight Release Repository</name>
          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.release/</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>false</enabled></snapshots>
        </repository>
        <repository>
          <id>opendaylight-snapshot</id>
          <name>OpenDaylight Snapshot Repository</name>
          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
          <releases><enabled>false</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>opendaylight-release</id>
          <name>OpenDaylight Release Repository</name>
          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.release/</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>false</enabled></snapshots>
        </pluginRepository>
        <pluginRepository>
          <id>opendaylight-snapshot</id>
          <name>OpenDaylight Snapshot Repository</name>
          <url>https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/</url>
          <releases><enabled>false</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
</settings>

2. 从项目根目录启动构建,不要直接进入子模块

直接进入netconf/tools/netconf-testtool/目录构建会跳过父模块的依赖解析流程,导致Maven找不到上层POM的依赖。正确的操作是:

  • 回到你克隆的netconf仓库根目录
  • 执行以下命令之一:
# 构建整个项目(推荐,确保所有父依赖都被正确安装到本地仓库)
mvn clean install

# 或者只构建testtool模块,同时自动构建它依赖的父模块
mvn clean install -pl netconf/tools/netconf-testtool -am

3. 切换到稳定发布版本而非SNAPSHOT版本

SNAPSHOT是开发中的未稳定版本,依赖可能还未完全同步到仓库。你可以切换到项目的稳定分支或标签来构建:

  • 查看已发布的稳定版本标签:git tag
  • 切换到某个稳定版本,比如git checkout 1.4.0(根据实际可用版本调整)
  • 再执行构建命令

尝试以上步骤后,应该能解决父POM无法解析的问题。

内容的提问来源于stack exchange,提问作者Bala Krishnan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:43:09