开发机器无法访问互联网,大约需要60秒才能超时。当我尝试构建时,我看到了
Downloading: http://repo.maven.apache.org/maven2/com/google/gsa-connector/2.8.0/gsa-connector-2.8.0.pom
但是,我的POM中有以下内容:
<repository>
<id>bb-nexus</id>
<url>http://repo.dev.bloomberg.com/content/groups/public</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>nexus-3rdparty</id>
<url>http://repo.dev.bloomberg.com/content/repositories/thirdparty/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
它总是首先尝试去repo.maven。我甚至试图添加到D:\。m2 \ settings.xml
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://repo.dev.bloomberg.com/content/groups/public</url>
</mirror>
</mirrors>
基于http://maven.apache.org/guides/mini/guide-mirror-settings.html但它继续首先尝试repo.maven。我正在使用Apache Maven 3.0.4(r1232337; 2012-01-17 03:44:56-0500)
我不能使用-o因为它仍然需要访问本地repo.dev。
以下是'有效设置':
D:\Users\chloe\Projects\team\confluence-plugin>mvn help:effective-settings
[INFO] Scanning for projects...
Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-install-plugin/maven-metadata.xml
[WARNING] Could not transfer metadata org.apache.maven.plugins:maven-install-plugin/maven-metadata.xml from/to central (
http://repo.maven.apache.org/maven2): Connection to http://repo.maven.apache.org refused
...
[INFO]
[INFO] --- maven-help-plugin:2.1.1:effective-settings (default-cli) @ bb-confluence-plugin ---
[INFO]
Effective user-specific configuration settings:
<?xml version="1.0" encoding="UTF-8"?>
...
<settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLoca
tion="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">
<localRepository xmlns="http://maven.apache.org/SETTINGS/1.1.0">d:\.m2\repository</localRepository>
<pluginGroups xmlns="http://maven.apache.org/SETTINGS/1.1.0">
<pluginGroup>org.apache.maven.plugins</pluginGroup>
<pluginGroup>org.codehaus.mojo</pluginGroup>
</pluginGroups>
</settings>
[INFO] ------------------------------------------------------------------------
答案 0 :(得分:40)
所有pom文件都继承自maven super POM http://maven.apache.org/ref/3.0.4/maven-model-builder/super-pom.html 其中包含此条目:
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>http://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
尝试在你的pom中设置:
<repositories>
<repository>
<id>central</id>
<url>http://repo.dev.bloomberg.com/content/groups/public</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://repo.dev.bloomberg.com/content/groups/public</url>
<releases><enabled>false</enabled></releases>
</pluginRepository>
</pluginRepositories>
答案 1 :(得分:22)
大多数组织需要设置一个或多个共享存储库,因为不是每个人都可以部署,或者只是从中央Maven存储库下载。要发布版本以便在其网络中的不同环境中使用,组织通常需要设置什么被称为内部存储库。
将此存储库用于项目时,有两种选择:将其用作镜像,或者将其覆盖到中央存储库。如果要将其专门用作中央存储库的副本,并且让开发人员在其设置中配置它,则可以将其用作镜像。或者在这种情况下,您希望阻止访问中央存储库以获得更好的控制,从项目级别而不是在每个用户的设置中配置存储库,或者在同一存储库中包含您自己的工件,您应该覆盖中央库中。
另外,在这一点上,要记住由maven依赖项执行的解析过程非常重要,它们有两个主要的存储库设置:
作为一个面向对象的框架,Maven让所有POM都有一个隐含的父级Super POM。根据其定义,将依赖关系和插件放在第一个解析器存储库配置中:
<repositories>
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo1.maven.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
要使用内部存储库覆盖中央存储库,必须在设置文件和/或使用标识符中心的POM中定义存储库。通常,必须将其定义为常规存储库和插件存储库,以确保所有访问都是一致的。例如:
<repositories>
<repository>
<id>central</id>
<name>Maven Repository Switchboard</name>
<layout>default</layout>
<url>http://repo.dev.bloomberg.com/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Maven Plugin Repository</name>
<url>http://repo.dev.bloomberg.com/content/groups/public</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
相关链接:Coderwall - Stopping maven from trying to access its Central Repository
答案 2 :(得分:0)
尝试在reporting / plugins块中设置以下内容
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
<configuration>
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
</configuration>
</plugin>