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
相关产品推荐
相关产品推荐

