Descarga de sitios de actualización de complementos de Eclipse para la instalación fuera de línea

77

Un complemento que deseo instalar proporciona un sitio de actualización para la instalación. Sin embargo, la instalación de Eclipse en la que quiero instalarlo es en una máquina que no está conectada a Internet. ¿Hay alguna forma de acceder al sitio (HTTP, FTP, etc.) para descargar los archivos para la instalación sin conexión?

Chry Cheng
fuente

Respuestas:

57

Eclipse ofrece una forma de reflejar estos sitios automáticamente, ya sea a través de la línea de comandos o mediante tareas hormiga.

Espejo basado en información p2

$eclipse_home/eclipse -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication -source $1 -destination $2
$eclipse_home/eclipse -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -source $1 -destination $2

Referencia: duplicación del repositorio de Equinox p2

Espejo basado en información site.xml

java -jar $eclipse_home/plugins/org.eclipse.equinox.launcher_*.jar -application org.eclipse.update.core.standaloneUpdate -command mirror -from $from -to $to

Referencia: Ejecución del administrador de actualizaciones desde la línea de comandos

Puede seguir la evolución de estos scripts en mi repositorio de scripts .

Robert Munteanu
fuente
Para Kepler use esto
Vincentlcy
@vincentlcy: ¿no es eso lo que se encuentra en el encabezado 'Espejo basado en información p2'?
Robert Munteanu
Oh, lo siento, no sabía que es lo mismo. Me parece que en Kepler no puedo encontrar este $ eclipse_home / plugins / org.eclipse.equinox.launcher _ *. jar
Vincentlcy
Todavía tengo el lanzador jar en mi instalación de Kepler, pero creo que es opcional. Entonces moví la parte 'p2' primero, ya que es la compatible y se ve exactamente como la que vinculó. Gracias por contribuir :-)
Robert Munteanu
alguna forma de descargar también las dependencias? porque intenté hacer la instalación sin conexión de m2e y arroja un error que dice que no pudo encontrar el paquete
slf4j
11

Después de luchar con la creación de reflejos durante algún tiempo, me di cuenta de que es mucho más fácil (al menos para mí) usar "wget" en su lugar.

En breve:

  1. Descarga el sitio:

    wget --recursive --no-parent http://url.of/updatesite

  2. Tome el contenido del sitio de actualización descargado y muévalo a su entorno fuera de línea

  3. Agregue el directorio del sitio de actualización sin conexión a la lista de sitios de software disponibles mediante el botón "Local ...".

Puedes leer sobre esto con más detalles aquí .

Anton
fuente
El método más sencillo. Mi principal problema fue encontrar una URL para Jubula. download.eclipse.org oculta el contenido detrás del enlace "Mostrar contenido del directorio". Finalmente lo adiviné http://download.eclipse.org/jubula/release/mars/.
user3132194
1
Esto también falla para las cosas que están alojadas en S3 u otra tienda de objetos, así que no proporcione un sitio web rastreable.
Daniel Holmes
Bueno, sobre todo funcionó hace 3 años. La mayoría de los complementos no usaban tiendas de objetos en ese entonces ...
Anton
1
wget --recursive --no-parent download.eclipse.org/releases/kepler pero solo descarga el archivo xml correspondiente. ¿Cómo puedo descargar los archivos completos?
AhmedRana
9

La mayoría de los complementos de Eclipse se pueden instalar sin el actualizador de Eclipse, copiando los JAR necesarios disponibles en el sitio de actualización, en los directorios de complementos y características de la instalación de Eclipse.

En ciertos casos, es necesario iniciar Eclipse con un interruptor -clean.

A continuación, se muestra un ejemplo de cómo hacer esto para el complemento m2eclipse:

  1. El sitio de actualización de m2eclipse es http://m2eclipse.sonatype.org/update . Identificar la lista de JAR requeridos es el primer paso. Normalmente se encuentra en el archivo site.xml; en este caso, lo encontrará en http://m2eclipse.sonatype.org/update/site.xml .
  2. Filtre la lista de archivos JAR que se descargarán a la versión del complemento que desea utilizar. Esto se puede determinar mediante el atributo de versión de cada "característica". Si tiene suerte, encontrará la descripción del JAR en el nodo de categoría.
  3. Tenga en cuenta el atributo url de cada JAR que debe descargarse. Esto incluirá el subdirectorio del servidor donde está disponible el JAR, y también el directorio en la instalación de Eclipse donde deben colocarse.

PD: Este método es un poco pirateado, pero se basa en la referencia del mapa del sitio . Pero consulte la actualización

Actualizar

No he intentado esto, pero puede crear un sitio espejo local, desde donde todos los demás pueden recoger los complementos de Eclipse. En Galileo, esto se puede hacer ejecutando el actualizador de Eclipse en modo independiente a través del comando mirror .

Vineet Reynolds
fuente
Probé tu primera sugerencia. Pude encontrar y descargar los archivos JAR, pero parece que no contienen nada. Los instalé en el directorio "dropins" y reinicié, pero tampoco sucedió nada. Probaré tu otra sugerencia. Por cierto, el complemento que estoy intentando instalar es el conector de plantillas web genéricas de Mylyn de download.eclipse.org/tools/mylyn/update/incubator .
Chry Cheng
Para la primera sugerencia, intenté descargar download.eclipse.org/tools/mylyn/update/incubator/features/… . No tuve problemas para descargarlo.
Vineet Reynolds
En retrospectiva, la URL de actualización era download.eclipse.org/tools/mylyn/update/incubator y el archivo mencionado en site.xml era features / org.eclipse.mylyn.sandbox.ui_feature_3.2.1.v20090722-0200-e3x. tarro. La URL efectiva para el JAR es, por tanto, download.eclipse.org/tools/mylyn/update/incubator/features/…
Vineet Reynolds
1
Obtener las funciones no ayudará. Necesitas los complementos. Sugiero probar el Actualizador de Eclipse para crear un espejo del sitio. Una vez que lo haga, simplemente empaquételo en un zip y use el zip como un sitio de actualización desde el administrador de actualizaciones.
zvikico
1
Los mismos complementos están disponibles de todos modos en la página de descarga de Mylyn como zip @ eclipse.org/downloads/download.php?file=/tools/mylyn/update/… . Esa debería ser la forma más fácil para que el OP distribuya los complementos localmente.
Vineet Reynolds
5

Puede reflejar sitios p2 usando tareas Ant:

<target name="springide">
    <echo>springide</echo> 
    <p2.mirror verbose="true">
        <repository location="${REPO_HOME}/springide" name="springide" append="true"/>
        <source>
            <repository location="http://springide.org/updatesite" />
        </source>
        <iu id="Core / Spring IDE" version="" />
        <iu id="Extensions / Spring IDE" version="" />
        <iu id="Integrations / Spring IDE" version="" />
        <iu id="Resources / Spring IDE" version="" />
    </p2.mirror>
</target>

o encontrar errores:

<target name="findbugs">

<echo>findbugs</echo>
    <p2.mirror verbose="true">
        <repository location="${REPO_HOME}/findbugs" name="findbugs" append="true"/>
        <source>
            <repository location="http://findbugs.cs.umd.edu/eclipse/" />
        </source>
        <iu id="edu.umd.cs.findbugs.plugin.eclipse.feature.group" version="" />
    </p2.mirror>
</target>

Para que esto funcione, debe ejecutar tareas hormiga en la misma JVM que eclipse.

Puede encontrar IU ID: s abriendo "Actualizaciones de software" y copiarlo desde allí. En Eclipse 3.5 debería haber un botón Más ..., en 3.4 debe hacer clic en el botón Propiedades.

ILX
fuente
3

Puede obtenerlo desde aquí https://repository.sonatype.org/content/repositories/forge-sites/m2e/1.3.0/N/1.3.0.20121023-1108/

Descargue todos los archivos que desglosan los complementos y las funciones. Almacene en un directorio en su máquina manteniendo todo en la misma estructura de directorios. Muévalo a una carpeta en su máquina de desarrollo.

En Eclipse, vaya a Ayuda | Instalar nuevo software ... Presione el botón 'Agregar' Presione el botón 'Local ...' Busque el directorio en el que colocó los archivos. Sigue las instrucciones en la pantalla.

Ian Jones
fuente
3

Los complementos de Eclipse generalmente dependen de otros complementos. Es un poco difícil rastrear las dependencias. Es mejor descargar todas las dependencias usando el sitio de actualización una vez, y puede distribuirlas a otros dropins de Eclipse. Para Eclipse 3.4 o posterior, puede usar dropins, que es una característica de Eclipse. De esta forma, no es necesario que instale el complemento desde el sitio de actualización cada vez que tenga que volver a instalar su Eclipse. Leer en http://michsan.web.id/content/how-install-eclipse-plugins-offline

Si no puede ver la web, le daré una descripción

Preparar directorio para complementos externos

Cree un directorio especial para guardar nuestros queridos complementos, por ejemplo, en / home / ichsan / eclipse-dropins instalaremos el complemento Maven: m2eclipse.

mkdir /home/ichsan/eclipse-dropins

Por ahora, llamaremos a este directorio DROPINS

Preparando sandbox

A continuación, al usar Git crearemos una caja de arena de Eclipse. El punto es instalar un complemento en un Eclipse nuevo. En lugar de instalar un nuevo Eclipse cada vez que queremos instalar un nuevo complemento, es mejor que usemos Git para crear una nueva rama de un nuevo Eclipse.

Primero, extraiga / instale el nuevo Eclipse en un directorio, por ejemplo, / home / ichsan / eclipse-sandbox (de modo que encontraremos /home/ichsan/eclipse-sandbox/eclipse.ini). Llamamos al directorio como ECLIPSE_SANDBOX.

A continuación, confirme la instalación nueva. Este paso debe realizarse una sola vez.

cd $ECLIPSE_SANDBOX
git init
git add .
git commit -am "Fresh Eclipse"

Instalar el complemento en la caja de arena

Ahora es la parte interesante. Se supone que tenemos que instalar el complemento m2eclipse. Instalaremos esto en la nueva rama de Git para que la rama maestra se mantenga limpia o intacta.

cd $ECLIPSE_SANDBOX
git checkout -b "m2eclipse"

Ahora, iniciamos el Eclipse de ECLIPSE_SANDBOX y descargamos el complemento. Una vez que terminamos, apagamos Eclipse y verificamos qué nuevos directorios o archivos se han creado (usando Git). Recuerde que solo nos preocupan los nuevos directorios de complementos y funciones y el contenido dentro de ellos. Entonces, no copiaremos el resto en dropins.

# Prepare the m2eclipse plugin directories
mkdir -p $DROPINS/m2eclipse/eclipse/plugins
mkdir -p $DROPINS/m2eclipse/eclipse/features

cd $ECLIPSE_SANDBOX
for f in $(git status | sed "s/#\t//g" | grep -P "^plugins" ); do cp -R $f $DROPINS/m2eclipse/eclipse/plugins; done
for f in $(git status | sed "s/#\t//g" | grep -P "^features"); do cp -R $f $DROPINS/m2eclipse/eclipse/features; done

# Make the directory read only
chmod -R -w $DROPINS/m2eclipse

# Commit changes
git add .
git add -u
git commit -am "M2Eclipse plugin installed"


# Back to master branch to make Eclipse clean again and ready for other plugin installations
git checkout master
Installing the plugin

Simplemente copie el directorio de DROPINS / m2eclipse en ECLIPSE_HOME / dropins o cree un enlace simbólico. ¡Y hemos terminado!

cd $ECLIPSE_HOME/dropins ln -s $DROPINS/m2eclipse

Otra forma es hacer una copia de seguridad de las diferencias entre la confirmación de Fresh-Eclipse y la confirmación posterior a la instalación del complemento.

for i in `git diff hashFreshEclipse hashPluginInstall --name-only`;do 
  if [ -f $i ]; then
    tar -r -f m2e-android.tar $i
  fi
done
gzip m2e-android.tar
sancho21
fuente
3

Descubrí que p2 mirrorApplication no funcionaba muy bien en algunos sitios y reflejaba artefactos duplicados (tanto la versión pack200 como la jar). El agregador b3 funcionó mucho mejor y facilitó mucho la personalización de mi sitio de actualización. Consulte el manual en: https://wiki.eclipse.org/Eclipse_b3/aggregator/manual para obtener instrucciones y detalles de instalación.

Los pasos básicos que utilicé fueron:

  • Archivo> Nuevo> Otro ...> b3> Agregación de repositorio.
  • Seleccione el nodo Agregación y configure Build Root en la carpeta donde desea que vaya el repositorio agregado.
  • Agregue las plataformas que le interesan con el botón derecho del ratón y haga clic en el nodo Agregación > Nuevo elemento secundario> Configuración.
  • Agregue un conjunto de validación , normalmente establezca su etiqueta en principal.
  • Si no necesita ningún paquete adicional del repositorio principal de eclipse (es decir: http://download.eclipse.org/releases/mars ), puede agregarlo al conjunto de validación como un repositorio de validación , pero normalmente necesitará para agregarlo como un repositorio mapeado bajo una contribución para que se puedan descargar dependencias y / o características adicionales de eclipse.
  • Para cada complemento, agregue una Contribución con una Etiqueta , y debajo de ella al menos un Repositorio Mapeado con una Ubicación .
  • Agregue nodos de categoría personalizada a la agregación si lo desea; deles a cada uno una descripción , un identificador y una etiqueta únicos .
  • Expanda el nodo Navegador de repositorio en la parte inferior> expanda la URL del repositorio> expanda Unidades instalables > Mire las características en Categorías (si están presentes) y / o en Características .
  • Haga clic con el botón derecho en las características que desee y Agregar a la categoría personalizada (si las está usando); de lo contrario, Agregar al repositorio principal asignado como> Característica asignada.
  • Haga clic con el botón derecho en cualquier nodo> Crear agregación.

Nota importante: si no mapea ninguna característica de un repositorio determinado, ese repositorio completo se reflejará (creo que las últimas versiones de todos los paquetes, no todo en el repositorio).

Afortunadamente, no tuve que meterme con las reglas de exclusión o las reglas de configuración válidas, que parecen complicar las cosas. Sin embargo, las reglas de exclusión pueden ser necesarias si los repositorios contienen paquetes que tienen conflictos de dependencia, en cuyo caso es necesario excluir uno o más paquetes en conflicto.

Si bien b3 Aggregator normalmente solo descarga la última versión de cada característica que ha mapeado (y sus dependencias), si usa repetidamente Build Aggregation a lo largo del tiempo a medida que se lanzan nuevas versiones, las versiones obsoletas se acumularán en su agregación. Puede usar Limpiar y luego Construir agregación, pero esto significa que tendrá que volver a descargar todo. En su lugar, simplemente agregue otro archivo de agregación .b3aggr, establezca la raíz de compilación, agregue sus configuraciones y agregue una contribución con un repositorio asignado utilizando la ruta al finaldirectorio de su espejo local . No mapees ninguna característica ni crees categorías. Luego, compile la agregación y solo se agregarán las últimas versiones de su espejo.

PolyTekPatrick
fuente
2

Acabo de enfrentar este problema y lo resolví siguiendo las instrucciones de esta guía . En resumen, ejecute los siguientes comandos en su terminal en la carpeta Eclipse:

  1. eclipsec.exe -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -source $1 -destination $2

  2. eclipsec.exe -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication -source $1 -destination $2

Donde se $1refiere a la URL del repositorio en línea y se $2refiere a la ruta a la carpeta local. Por ejemplo, para descargar Vrapper en mi escritorio de Windows:

$ 1 = http://vrapper.sourceforge.net/update-site/stable/

$ 2 = C: / Usuarios / foo / Escritorio

Transfiera la carpeta a la máquina sin conexión a Internet. Luego, inicie Eclipse -> Ayuda> Instalar nuevo software. Especifique el repositorio local (es decir, la carpeta que acaba de transferir) para la instalación. Eso debería funcionar.

Zhiyuan-Amos
fuente
Igual que la respuesta existente en la misma pregunta: stackoverflow.com/a/1907322 . En su lugar, vote a favor la respuesta existente y agregue comentarios para contribuciones menores.
Chry Cheng
No entendí la respuesta existente cuando la leí por primera vez, por eso busqué información adicional y publiqué mi respuesta aquí. El OP de stackoverflow.com/questions/38571201/… también pensó que la respuesta "parece anticuada". Pero sí, estoy de acuerdo en que debería haber publicado un comentario en su lugar, ¡gracias!
Zhiyuan-Amos
1
Esta respuesta proporciona instrucciones mucho más claras que la respuesta aceptada y es la que utilicé. Gracias por proporcionarlo.
Juan Jesús