pom - maven-dependency-plugin example
¿Cómo evitas que maven intente acceder a http://repo.maven.apache.org? (3)
Todos los archivos pom heredan del maven super POM http://maven.apache.org/ref/3.0.4/maven-model-builder/super-pom.html que contiene esta entrada:
<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>
Intenta configurar esto en tu pom:
<repositories>
<repository>
<id>central</id>
<url>http://repo.dev.bloomberg.com/content/groups/public</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://repo.dev.bloomberg.com/content/groups/public</url>
<releases><enabled>false</enabled></releases>
</pluginRepository>
...
La máquina de desarrollo no puede acceder a Internet y tarda unos 60 segundos en agotar el tiempo de espera. Cuando intento construir, veo
Downloading: http://repo.maven.apache.org/maven2/com/google/gsa-connector/2.8.0/gsa-connector-2.8.0.pom
Sin embargo, tengo lo siguiente en mi 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>
Siempre trata de ir a repo.maven primero. Incluso traté de agregar a 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>
basado en http://maven.apache.org/guides/mini/guide-mirror-settings.html pero continúa probando repo.maven primero. Estoy usando Apache Maven 3.0.4 (r1232337; 2012-01-17 03: 44: 56-0500)
No puedo usar -o porque todavía necesita acceder al repositorio local repo.dev.
Aquí está con ''ajustes efectivos'':
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] ------------------------------------------------------------------------
Anulando el repositorio central
Cómo funciona:
La mayoría de las organizaciones necesitarán configurar uno o más repositorios compartidos, ya que no todos pueden implementarse, o simplemente descargar desde el repositorio central de Maven. Para publicar lanzamientos para su uso en diferentes entornos dentro de su red, la organización normalmente querrá configurar lo referido para como un repositorio interno.
Al usar estos repositorios para sus proyectos, hay dos opciones: usarlo como un espejo o hacer que anule el repositorio central. Lo usaría como un espejo si se pretende que sea una copia del repositorio central exclusivamente, y si es aceptable que los desarrolladores lo configuren en su configuración. O como en este caso, si desea evitar el acceso al repositorio central para un mayor control, configurar el repositorio desde el nivel del proyecto en lugar de en la configuración de cada usuario o incluir sus propios artefactos en el mismo repositorio, debe anular la central repositorio.
Además, es muy importante tener en cuenta, en este punto, el proceso de resolución llevado a cabo por las dependencias maven, que tienen dos configuraciones de bloques principales para repositorios:
- relacionado con las deidades se enumerará dentro de nosotros;
- relacionado con complementos que se agregarán dentro de los nodos o se usarán durante el ciclo de vida.
La solución:
Como un marco orientado a objetos, Maven tiene todos los POM que tienen un padre implícito, el Super POM. Bajo sus definiciones se establecen tanto las dependencias como los complementos de las primeras configuraciones de repositorios de resolución:
<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>
Para anular el repositorio central con su repositorio interno, debe definir un repositorio en un archivo de configuración y / o POM que use la central de identificador. Por lo general, esto debe definirse como un repositorio regular y un repositorio de complementos para garantizar que todo el acceso sea coherente. Por ejemplo:
<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>
Enlace relacionado: Coderwall - Evitando que maven intente acceder a su Repositorio Central
Intente configurar lo siguiente en el bloque de informes / complementos
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
<configuration>
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
</configuration>
</plugin>