错误1 如下:
[ERROR] Failed to execute goal on project cloud-plugin-network-contrail: Could
not resolve dependencies for project
org.apache.cloudstack:cloud-plugin-network-contrail:jar:4.4.4: Could not find
artifact net.juniper.contrail:juniper-contrail-api:jar:1.0-SNAPSHOT in
nexus-releases (http://nexus:8081/nexus/content/groups/public) -> [Help 1]
从错误的字面意思为 从 http://xxx/nexus/content/groups/public 找不到net.juniper.contrail:juniper-contrail-api等jar包 导致了这个错误
解决方法:
配置setting.xml 把url改为你自己的
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>nexus-releases</id>
<url>http://nexus:8081/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus-snapshots</id>
<mirrorOf>central</mirrorOf>
<url>http://nexus:8081/nexus/content/groups/public-snapshots</url>
</mirror>
</mirrors>
</settings>
原因
项目中的pom.xml 定义的有外部的源 所以只需将setting.xml 源的mirrorOf配置为替换central即可。
如下可以看出 很多pom.xml 中定义了其他源
find . -name pom.xml |xargs grep "repositories"
./plugins/hypervisors/kvm/pom.xml: <repositories>
./plugins/hypervisors/kvm/pom.xml: </repositories>
./plugins/network-elements/juniper-contrail/pom.xml: <repositories>
./plugins/network-elements/juniper-contrail/pom.xml: </repositories>
./plugins/network-elements/midonet/pom.xml:<repositories>
./plugins/network-elements/midonet/pom.xml:</repositories>
错误2 如下
[ERROR] Failed to execute goal on project cloud-plugin-network-contrail: Could not resolve dependencies for project org.apache.cloudstack:cloud-plugin-network-contrail:jar:4.4.4: Failure to find net.juniper.contrail:juniper-contrail-api:jar:1.0-SNAPSHOT in http://nexus:8081/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of nexus-releases has elapsed or updates are forced -> [Help 1]
这个是因为本地cache导致
解决办法:
执行mvn 命令后加个 -U
解释如下
-U,--update-snapshots Forces a check for updated
releases and snapshots on remote
repositories
参考:
https://maven.apache.org/pom.html#The_Super_POM
http://maven.apache.org/settings.html#Mirrors