Mi póliza de la compañía de ceños fruncidos artefactos descargado automáticamente (tienen que ser aprobados), así que para utilizar Maven necesito deshabilitar el acceso a Maven central del repositorio.

En otras palabras, no quiero Maven para intentar cualquier descargas de central.

Sé cómo configurar un repositorio local (red o no), mi idea es usar un «bendito» máquina para actualizar el repositorio local.

PS: yo podría bloquear las peticiones al proxy a nivel de red, pero estoy preguntando sobre cómo hacerlo con Maven de la configuración.

ACTUALIZACIÓN
Finalmente me di cuenta de cómo hacerlo. En maven de la casa, en la conf directorio global de settings.xml.
Puede establecer un espejo para central que apunta a algún servidor interno o simplemente reemplazar la definición.

InformationsquelleAutor juancn | 2011-02-14

7 Comentarios

  1. 44

    De acuerdo. No hay descargas directas desde los repositorios externos debe ser permitido en sus versiones de lanzamiento.

    La respuesta concreta a tu pregunta es la segunda parte de mi respuesta 🙂

    La instalación de un administrador de repositorio

    Me gustaría recomendar la creación de un local de Maven administrador de repositorio. Buenas opciones son las siguientes:

    Todos estos son capaces de actuar como un proxy caché para el disponible en el exterior de Maven central de frascos.

    Usted también puede estar interesado en la Profesión de la versión de Nexus. Incluye un La adquisición de la suite para la gestión de bibliotecas externas. También proporciona a los plugins de Maven para la gestión centralizada de la Maven archivo de configuración, que es la segunda parte de mi respuesta…

    Local de Maven configuración

    Actualización de la archivo de configuración encuentra en el siguiente directorio:

    $HOME/.m2/settings.xml

    Especificar que todas las centrales solicitudes deben enviarse al repositorio Maven local:

    <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>central-proxy</id>
          <name>Local proxy of central repo</name>
          <url>http://<hostname>/central</url>
          <mirrorOf>central</mirrorOf>
        </mirror>
      </mirrors>
      ...
    </settings>
    • Artifactory (incluso en OSS edition) puede generar este archivo de configuración para usted – wiki.jfrog.org/confluence/display/RTF/…
    • La «central» aquí debe estar en minúsculas: <mirrorOf>centro</mirrorOf>. El central no se puede reemplazar cuando yo uso «Central» de aquí.
  2. 44

    He encontrado el La configuración de los Artefactos de la Resolución de la página útil.
    Se afirma lo siguiente sobre el espejo «de cualquier»-el programa de instalación.

    No uso «espejo» por sí mismo, como su única regla de resolución. Uso de cumplir alguno de los artefactos de la resolución que se fabrican estrictamente a través de Artifactory.
    El espejo «de cualquier» proxy funciona la configuración de repositorios definidos. Se sustituyen, pero no ocultar, la incorporada en el centro y las instantáneas de repositorios, a menos que sea reemplazado por el usuario. Se define un grano grueso proxy de la regla que no permite diferenciar entre la prensa y las instantáneas, y se basa en los repositorios definidos para ello la resolución de filtrado.

    La Super POM de Maven define el repositorio central. Aquí es cómo se puede reemplazar el repositorio central y el plugin-repositorio de versiones y de instantáneas:

    <repositories>
        <repository>
            <id>central</id>
            <url>http://repo1.maven.org/maven2</url>
            <releases>
                    <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>    
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <url>http://repo1.maven.org/maven2</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    Por supuesto, usted debe tener un reemplazo configurado, como el aceptado la respuesta indicada.

    • Esta solución parece ser la mejor que se puede conseguir. Todavía hay problemas si el uso de diferentes proyectos con el mismo repositorio local (si el otro proyecto no se preocupan por la desactivación de maven central), pero mientras que no se puede eliminar completamente el repositorio central, esto es limpia y no depende de un reflejo del administrador de repositorio.
  3. 5

    En el caso de un repositorio que debe controlar todos y cada artefacto solicitud puede configurar un repositorio único para todo espejo en su $MAVEN_HOME/conf/settings.xml:

    <mirror>
      <id>internal-repository</id>
      <name>Maven Repository Manager running on repo.mycompany.com</name>
      <url>http://repo.mycompany.com/proxy</url>
      <mirrorOf>*</mirrorOf>
    </mirror>

    Fuente

  4. 4

    La forma más sencilla es utilizar el parámetro-o que dice maven para que se ejecute en modo sin conexión. Por supuesto, usted tendrá que asegurarse de que su local repo tiene todo lo que usted necesita, pero este, al menos, se encargará de seguridad de cualquier preocupación que usted pueda tener con conexión automática a un no aprobado por la repo.

    • Por «locales » repo» te refieres a la máquina local a la derecha? Todas las dependencias se necesita para ser instalado localmente debido a que -o causas de maven para nunca utilizar un cuadro de repo.
    • Por supuesto, @Gris – que es lo que el modo offline hace 🙂
    • Sé que a Rory. Era sólo que su uso del término «local repo», lo que podría confundir a ser la repo que fue local para su empresa. Tratando de ser explícito para los n00bs por ahí.
    • No se preocupe @Gris
  5. 3

    Suena como alguien que está tratando activamente de hacer cumplir su política de gestión de código Abierto. Que bueno escuchar.

    De acuerdo con el otro comentario aquí sobre el uso de un interno del administrador de repositorio para alojar los componentes necesarios por Maven.

    Como Rory menciona, usted necesita para asegurarse de que tiene todo lo necesario en el repositorio antes de dejar el acceso a Maven Central (El Repositorio Central) o cualquier otro repositorio de código fuente abierto.

    Marca hace un buen punto sobre el Nexo entre las funciones de compra. Una vez que se interna repo manager está configurado con todos los de su «aprobado» componentes, también puede activar la Nexus Repositorio de Salud la función Comprobación de (es gratis), que informa de todos los componente de licencias, las vulnerabilidades de seguridad conocidas, etc. para los componentes en sus repos.

    La divulgación completa, yo trabajo para Sonatype.

  6. 2

    En el pasado me he encontrado que la solución más robusta es anular manualmente el construido-en los repositorios. He encontrado este enfoque mejor que cambiar el padre POM, settings.xml, espejo, o perfiles. Para todos los proyectos internos poner a continuación, la configuración en su POM.

    <repositories>
        <repository>
            <id>central</id>
            <url>http://internalrepo</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>snapshots</id>
            <url>http://internalrepo</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <url>http://internalrepo</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>snapshots</id>
            <url>http://internalrepo</url>
            <releases>
                <enabled>false</enabled>
            </releases>
        </pluginRepository>
    </pluginRepositories>

Dejar respuesta

Please enter your comment!
Please enter your name here