maven 私有源编译cloudstack错误解决

  错误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


你可能感兴趣的:(nexus,CloudStack,mvn)