2010-07-22 9 views
5

Estoy sentado detrás de un firewall y, por lo tanto, maven no se puede conectar a los repositorios centrales (aparece un mensaje de error a continuación).Maven: Cómo instalar un complemento en modo fuera de línea

Sin embargo, puedo conectarme a internet a través de HTTP.

¿Cómo puedo instalar un complemento maven (por ejemplo, arquetipo) en modo fuera de línea (es decir, descargar algún archivo en un navegador y luego instalar el complemento ejecutando algunos comandos)?

Gracias de antemano

Dmitri

PD: Aquí está el mensaje de error:

E:\>mvn archetype:generate -DarchetypeGroupId=com.vaadin 
-DarchetypeArtifactId=vaadin-archetype-clean -DarchetypeVersion=LATEST -DgroupI 
d=at.swdev -DartifactId=pcc -Dversion=1.0 -Dpackaging=war 
[INFO] Scanning for projects... 
[INFO] Searching repository for plugin with prefix: 'archetype'. 
[INFO] org.apache.maven.plugins: checking for updates from central 
[WARNING] repository metadata for: 'org.apache.maven.plugins' could not be retri 
eved from repository: central due to an error: Error transferring file: Connecti 
on refused: connect 
[INFO] Repository 'central' will be blacklisted 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] The plugin 'org.apache.maven.plugins:maven-archetype-plugin' does not exi 
st or no valid version could be found 
[INFO] ------------------------------------------------------------------------ 
[INFO] For more information, run Maven with the -e switch 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1 second 
[INFO] Finished at: Thu Jul 22 15:17:00 CEST 2010 
[INFO] Final Memory: 1M/15M 
[INFO] ------------------------------------------------------------------------ 

Respuesta

7

estoy sentado detrás de un firewall y por lo tanto experto no puedo conectar con depósitos centrales (mensaje de error se da a continuación). Sin embargo, puedo conectarme a Internet a través de HTTP.

Tal vez deberías aclarar un poco porque Maven usa HTTP también. Si se conecta a través de algún tipo de proxy, PUEDE configurar Maven para que lo haga al declarar el proxy en su ~/.m2/settings.xml. Ver Configuring a proxy.

¿Cómo puedo instalar un complemento maven (por ejemplo, arquetipo) en modo fuera de línea (es decir, descargar algún archivo en un navegador y luego instalar el complemento ejecutando algunos comandos)?

Puede instalar cualquier frasco en su repositorio local con el objetivo install:install-file (véase la página Usage). Pero esto es solo una pequeña parte de la historia, también necesitarás instalar dependencias del complemento. Y luego dependencias de dependencias. Esto se convertirá muy rápidamente en una auténtica pesadilla y una tarea inmanejable (que Maven trata precisamente de resolver). Así que o bien:

  • Configurar Maven para acceder a Internet si esto es posible ~ o ~
  • instalación de un diccionario de la empresa (como Nexus) en una máquina dedicada, ver con sus administradores de la manera de permitirle el acceso a Internet) y configure su cliente Maven para usarlo ~ o ~
  • Copie un repositorio local "pre-poblado" de una máquina existente a su máquina y ejecute maven fuera de línea (con todas las limitaciones que esto implica) ~ o ~
  • No lo haga utilizar Maven
+0

Gracias, configurar el proxy ayudó! –

+0

@ ~ dp-sw-dev: De nada. Me alegro de que haya ayudado. –

+0

Tuve el mismo problema. ¡Oh bebé! ¡Bendito sea U Pascal! :RE. Tu nombre debería ser 'Turbo' Pascal !! ¡GRACIAS GRANDE HOMBRE! –

0

Si no puede usar el proxy, entonces debe descargar todas las dependencias del plugin como dijo Pascal. La forma más fácil de hacer esto.

Descargue todas las dependencias usando una máquina con conexión http normal/proxiada. El complemento de dependencia Maven tiene un objetivo que puede ayudarte. dependencia de mvn: go-offline

Por ejemplo, lo uso para obtener las dependencias de maven del tutorial de aplicaciones y fusibles.

svn co (http aquí) appfuse-demos.googlecode.com/svn/trunk/helloworld~~V~~singular~~3rd (código echa un vistazo a la fuente) mvn install (instalar y ver que funciona en la máquina normal) dependencia mvn: Go- fuera de línea (descarga todo.Ayuda: le dice a Maven que resuelva todo de lo que depende este proyecto (dependencias, complementos, informes) en preparación para desconectarse).

luego de eso en su repositorio de m2 local (~/m2/repositorio), encontrará todo lo que necesitas. Zip esa carpeta. Obténgalo dentro de su intranet. extraerlo a su repositorio local o al repositorio corporativo (nexus, artifactory ..)

debería poder usar ese complemento ahora.

http://maven.apache.org/plugins/maven-dependency-plugin/

0

pienso que su cortafuegos de seguridad no le permite descargarlo desde el centro repo.So experto, puede simplemente especificar espejos en el settings.xml en el MAVEN_HOME. si tiene un repositorio para su empresa, diga como nexus, proporcione la url del servidor de ese nexo en la sección de réplicas en su settings.xml. Tenga en cuenta que en caso de que no tenga ningún repo para su empresa, debe descargar todas las dependencias fuera de línea e instalar usando mvn install en el repositorio local en su servidor de compilación.

Cuestiones relacionadas