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

构建基于ORAN代码的ONAP Honolulu版本A1策略管理服务容器时出现错误

解决Maven构建A1-Policy-Management时的父POM解析失败问题

先帮你拆解问题:你遇到的构建失败核心原因是ONAP专属父POM org.onap.ccsdk.parent:spring-boot-starter-parent:pom:2.1.7 不在默认的Maven中央仓库中,导致Maven无法找到它;至于那些非法反射访问警告,属于Guice与Java版本兼容的小问题,不影响构建成功,后面再讲怎么处理。

下面是具体的解决步骤:

1. 配置ONAP专属Maven仓库

ONAP所有组件的依赖都托管在自己的Nexus仓库里,你需要将这个仓库添加到Maven配置中,有两种方式可选:

方式一:修改项目的pom.xml

打开/root/oran/a1-policy-management/pom.xml,在<project>标签内添加以下仓库配置:

<repositories>
    <repository>
        <id>onap-releases</id>
        <name>ONAP Releases Repository</name>
        <url>https://nexus.onap.org/content/repositories/releases/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>onap-snapshots</id>
        <name>ONAP Snapshots Repository</name>
        <url>https://nexus.onap.org/content/repositories/snapshots/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<pluginRepositories>
    <pluginRepository>
        <id>onap-releases</id>
        <name>ONAP Releases Repository</name>
        <url>https://nexus.onap.org/content/repositories/releases/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
    <pluginRepository>
        <id>onap-snapshots</id>
        <name>ONAP Snapshots Repository</name>
        <url>https://nexus.onap.org/content/repositories/snapshots/</url>
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

方式二:修改Maven全局settings.xml(推荐,一次配置所有项目可用)

编辑你的Maven全局配置文件(通常路径是~/.m2/settings.xml,如果没有就新建一个),添加以下profile配置:

<profiles>
    <profile>
        <id>onap-repos</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
                <id>onap-releases</id>
                <url>https://nexus.onap.org/content/repositories/releases/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </repository>
            <repository>
                <id>onap-snapshots</id>
                <url>https://nexus.onap.org/content/repositories/snapshots/</url>
                <releases>
                    <enabled>false</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>onap-releases</id>
                <url>https://nexus.onap.org/content/repositories/releases/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
                <snapshots>
                    <enabled>false</enabled>
                </snapshots>
            </pluginRepository>
            <pluginRepository>
                <id>onap-snapshots</id>
                <url>https://nexus.onap.org/content/repositories/snapshots/</url>
                <releases>
                    <enabled>false</enabled>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
    </profile>
</profiles>

2. 强制更新Maven缓存并重新构建

因为Maven已经缓存了"找不到该父POM"的结果,所以需要用-U参数强制刷新缓存,重新拉取依赖:

mvn clean install -Dmaven.test.skip=true -U

执行这个命令后,Maven会从ONAP的仓库拉取需要的父POM,构建应该就能成功了。

3. 消除非法反射访问警告(可选)

那些关于Guice的反射警告是因为Java 9+限制了某些反射API的使用,不影响构建结果,但如果看着不舒服,可以在Maven命令中添加JVM参数来消除:

mvn clean install -Dmaven.test.skip=true -U --add-opens java.base/java.lang=ALL-UNNAMED

或者你也可以设置环境变量,让所有Maven命令都自动带上这个参数:

export MAVEN_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:17:44