Herunterladen von Eclipse-Plug-In-Update-Sites für die Offline-Installation

77

Ein Plug-In, das ich installieren möchte, bietet eine Update-Site für die Installation. Die Eclipse-Installation, auf der ich sie installieren möchte, befindet sich jedoch auf einem Computer, der nicht mit dem Internet verbunden ist. Gibt es eine Möglichkeit für mich, auf die Site (HTTP, FTP usw.) zuzugreifen, um die darin enthaltenen Dateien für die Offline-Installation herunterzuladen?

Chry Cheng
quelle

Antworten:

57

Eclipse bietet eine Möglichkeit, diese Sites automatisch zu spiegeln, entweder über die Befehlszeile oder über Ant-Tasks.

Spiegel basierend auf p2-Informationen

$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

Referenz: Equinox p2-Repository-Spiegelung

Spiegeln basierend auf site.xml-Informationen

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

Referenz: Ausführen des Update Managers über die Befehlszeile

Sie können die Entwicklung dieser Skripte in meinem Skript-Repository verfolgen .

Robert Munteanu
quelle
Für Kepler verwenden Sie diese
vincentlcy
@vincentlcy - ist das nicht in der Überschrift "Spiegel basierend auf P2-Informationen" zu finden?
Robert Munteanu
Oh, tut mir leid, ich wusste nicht, dass es dasselbe ist. es scheint für mich in Kepler kann ich dieses $ eclipse_home / plugins / org.eclipse.equinox.launcher _ * nicht finden. jar
vincentlcy
Ich habe immer noch das Launcher-Glas in meiner Kepler-Installation, aber ich denke, es ist optional. Also habe ich zuerst den 'p2'-Teil verschoben, da er unterstützt wird und genau so aussieht wie der, den Sie verlinkt haben. Vielen Dank für Ihren Beitrag :-)
Robert Munteanu
Gibt es eine Möglichkeit, auch die Abhängigkeiten herunterzuladen? Weil ich versucht habe, m2e offline zu installieren, wird ein Fehler ausgegeben, der besagt, dass das slf4j-Bundle nicht gefunden werden konnte
darthbinamira
11

Nachdem ich einige Zeit mit dem Spiegeln zu kämpfen hatte, wurde mir klar, dass es (zumindest für mich) viel einfacher ist, stattdessen "wget" zu verwenden.

Zusamenfassend:

  1. Laden Sie die Website herunter:

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

  2. Nehmen Sie den Inhalt der heruntergeladenen Update-Site und verschieben Sie ihn in Ihre Offline-Umgebung

  3. Fügen Sie Ihr Offline-Update-Site-Verzeichnis über die Schaltfläche "Lokal ..." zur Liste der verfügbaren Software-Sites hinzu.

Weitere Informationen finden Sie hier .

Anton
quelle
Die einfachste Methode. Mein Hauptproblem war es, eine URL für Jubula zu finden. download.eclipse.org verbirgt Inhalte hinter dem Link "Verzeichnisinhalte anzeigen". Endlich habe ich es erraten http://download.eclipse.org/jubula/release/mars/.
user3132194
1
Dies schlägt auch für Dinge fehl, die in S3 oder einem anderen Objektspeicher gehostet werden. Stellen Sie daher keine crawlbare Website bereit.
Daniel Holmes
Nun, es hat meistens vor 3 Jahren funktioniert. Die meisten Plugins verwendeten damals keine Objektspeicher ...
Anton
1
wget --recursive --no-parent download.eclipse.org/releases/kepler, aber es wird nur die XML-Datei dafür heruntergeladen. Wie kann ich die vollständigen Dateien herunterladen?
AhmedRana
9

Die meisten Eclipse-Plug-Ins können ohne den Eclipse-Updater installiert werden, indem die erforderlichen JARs, die auf der Update-Site verfügbar sind, in die Plugins und Feature-Verzeichnisse der Eclipse-Installation kopiert werden.

In bestimmten Fällen muss Eclipse mit einem -clean-Schalter gestartet werden.

Hier ist ein Beispiel, wie dies für das m2eclipse-Plugin gemacht wird:

  1. Die m2eclipse-Update-Site lautet http://m2eclipse.sonatype.org/update . Der erste Schritt besteht darin, die Liste der erforderlichen JARs zu ermitteln. Dies befindet sich normalerweise in der Datei site.xml. In diesem Fall finden Sie es unter http://m2eclipse.sonatype.org/update/site.xml .
  2. Filtern Sie die Liste der herunterzuladenden JARs in die Version des Plugins, die Sie verwenden möchten. Dies kann durch das Versionsattribut für jedes "Merkmal" bestimmt werden. Wenn Sie Glück haben, finden Sie die Beschreibung der JAR im Kategorieknoten.
  3. Beachten Sie das URL-Attribut jeder JAR, die heruntergeladen werden muss. Dies umfasst das Unterverzeichnis auf dem Server, auf dem die JAR verfügbar ist, sowie das Verzeichnis in der Eclipse-Installation, in dem sie abgelegt werden müssen.

PS: Diese Methode ist etwas hackisch, basiert jedoch auf der Site-Map-Referenz . Beachten Sie jedoch das Update

Aktualisieren

Ich habe dies nicht versucht, aber Sie können eine lokale Spiegel-Site erstellen, von der aus alle anderen die Eclipse-Plug-Ins abrufen können. In Galileo kann dies durch Ausführen des Eclipse-Updaters im Standalone-Modus über den Befehl Mirror erfolgen .

Vineet Reynolds
quelle
Versuchte Ihren ersten Vorschlag. Konnte die JARs finden und herunterladen, aber sie scheinen nichts zu enthalten. Installierte sie im Verzeichnis "dropins" und startete neu, aber es passierte auch nichts. Ich werde Ihren anderen Vorschlag versuchen. Übrigens ist das Plug-In, das ich installieren möchte, Mylyns Generic Web Templates Connector von download.eclipse.org/tools/mylyn/update/incubator .
Chry Cheng
Für den ersten Vorschlag habe ich versucht, download.eclipse.org/tools/mylyn/update/incubator/features/… herunterzuladen . Hatte keine Probleme beim Herunterladen.
Vineet Reynolds
Rückblickend lautete die Update-URL download.eclipse.org/tools/mylyn/update/incubator und die in site.xml erwähnte Datei war features / org.eclipse.mylyn.sandbox.ui_feature_3.2.1.v20090722-0200-e3x. Krug. Die effektive URL für die JAR lautet daher download.eclipse.org/tools/mylyn/update/incubator/features/…
Vineet Reynolds
1
Das Erhalten der Funktionen wird nicht helfen. Sie benötigen die Plugins. Ich schlage vor, den Eclipse Updater zu verwenden, um einen Spiegel der Site zu erstellen. Wenn Sie dies getan haben, packen Sie es einfach in eine Zip-Datei und verwenden Sie die Zip-Datei als Update-Site vom Update-Manager.
Zvikico
1
Die gleichen Plugins sind ohnehin auf der Mylyn-Downloadseite als zip @ eclipse.org/downloads/download.php?file=/tools/mylyn/update/… verfügbar . Dies sollte für das OP die einfachste Möglichkeit sein, die Plugins lokal zu verteilen.
Vineet Reynolds
5

Sie können p2-Sites mithilfe von Ant-Tasks spiegeln:

<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>

oder Findbugs:

<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>

Damit dies funktioniert, müssen Sie Ant-Tasks in derselben JVM wie Eclipse ausführen.

Sie finden IU ID: s, indem Sie "Software-Updates" öffnen und von dort kopieren. In Eclipse 3.5 sollte es eine Schaltfläche Mehr ... geben, in 3.4 müssen Sie auf die Schaltfläche Eigenschaften klicken.

ILX
quelle
3

Sie können es hier herunterladen: https://repository.sonatype.org/content/repositories/forge-sites/m2e/1.3.0/N/1.3.0.20121023-1108/

Laden Sie alle Dateien herunter, die sich mit Plugins und Funktionen befassen. Speichern Sie in einem Verzeichnis auf Ihrem Computer, wobei Sie alles in derselben Verzeichnisstruktur behalten. Verschieben Sie es in einen Ordner auf Ihrem Entwicklungscomputer.

Gehen Sie in Eclipse zu Hilfe | Neue Software installieren ... Klicken Sie auf die Schaltfläche "Hinzufügen". Klicken Sie auf die Schaltfläche "Lokal ...". Suchen Sie nach dem Verzeichnis, in das Sie die Dateien abgelegt haben. Folge den Anweisungen auf dem Bildschirm.

Ian Jones
quelle
3

Eclipse-Plugins hängen normalerweise von anderen Plugins ab. Es ist schwierig, die Abhängigkeiten zu verfolgen. Es ist besser, alle Abhängigkeiten einmal über die Update-Site herunterzuladen und sie auf andere Eclipse-Dropins zu verteilen. Für Eclipse 3.4 oder höher können Sie Dropins verwenden, eine Eclipse-Funktion. Auf diese Weise müssen Sie das Plugin nicht jedes Mal von der Update-Site installieren, wenn Sie Ihre Eclipse neu installieren müssen. Lesen Sie weiter http://michsan.web.id/content/how-install-eclipse-plugins-offline

Wenn Sie das Web nicht sehen können, gebe ich Ihnen eine Beschreibung

Bereiten Sie das Verzeichnis für externe Plugins vor

Erstellen Sie ein spezielles Verzeichnis für unsere geliebten Plugins, z. B. in / home / ichsan / eclipse-dropins installieren wir das Maven-Plugin: m2eclipse.

mkdir /home/ichsan/eclipse-dropins

Im Moment nennen wir dieses Verzeichnis DROPINS

Sandkasten vorbereiten

Als Nächstes erstellen wir mithilfe von Git eine Eclipse-Sandbox. Der Punkt ist, ein Plugin auf einer neuen Eclipse zu installieren. Anstatt jedes Mal, wenn wir ein neues Plugin installieren möchten, neues Eclipse zu installieren, sollten wir Git verwenden, um einen neuen Zweig von frischem Eclipse zu erstellen.

Extrahieren / installieren Sie zuerst neue Eclipse in ein Verzeichnis, z. B. / home / ichsan / eclipse-sandbox (damit wir /home/ichsan/eclipse-sandbox/eclipse.ini finden). Wir nennen das Verzeichnis ECLIPSE_SANDBOX.

Als nächstes schreiben Sie die Neuinstallation fest. Dieser Schritt sollte nur einmal ausgeführt werden.

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

Installieren Sie das Plugin auf der Sandbox

Nun ist der interessante Teil. Angenommen, wir müssen das m2eclipse-Plugin installieren. Wir werden dies auf einem neuen Git-Zweig installieren, damit der Hauptzweig sauber oder intakt bleibt.

cd $ECLIPSE_SANDBOX
git checkout -b "m2eclipse"

Jetzt starten wir die Eclipse der ECLIPSE_SANDBOX und laden das Plugin herunter. Sobald wir fertig sind, fahren wir die Eclipse herunter und überprüfen, welche neuen Verzeichnisse oder Dateien erstellt wurden (mit Git). Denken Sie daran, dass wir uns nur um neue Plugins und Feature-Verzeichnisse sowie deren Inhalt kümmern. Wir werden den Rest also nicht in Dropins kopieren.

# 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

Kopieren Sie einfach das Verzeichnis von DROPINS / m2eclipse in ECLIPSE_HOME / dropins oder erstellen Sie einen symbolischen Link. Und wir sind fertig!

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

Eine andere Möglichkeit besteht darin, Unterschiede zwischen dem Fresh-Eclipse-Commit und dem After-Plugin-Installations-Commit zu sichern.

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
quelle
3

Ich stellte fest, dass die p2 mirrorApplication auf einigen Websites nicht sehr gut funktionierte und doppelte Artefakte spiegelte (sowohl die pack200- als auch die jar-Version). Der b3 Aggregator funktionierte viel besser und machte es viel einfacher, meine Update-Site anzupassen. Installationsanweisungen und Details finden Sie im Handbuch unter: https://wiki.eclipse.org/Eclipse_b3/aggregator/manual .

Die grundlegenden Schritte, die ich benutzte, waren:

  • Datei> Neu> Andere ...> b3> Repository-Aggregation.
  • Wählen Sie den Aggregationsknoten aus und legen Sie den Build Root auf den Ordner fest, in den das aggregierte Repo verschoben werden soll.
  • Fügen Sie die Plattformen hinzu, die Sie verwenden möchten. Klicken Sie mit der rechten Maustaste auf den Knoten Aggregation > Neues untergeordnetes Element> Konfiguration.
  • Fügen Sie einen Validierungssatz hinzu und setzen Sie normalerweise seine Bezeichnung auf main.
  • Wenn Sie keine zusätzlichen Bundles aus dem Haupt-Eclipse-Repository benötigen (z. B. http://download.eclipse.org/releases/mars ), können Sie sie als Validierungs-Repository zum Validierungssatz hinzufügen. In der Regel benötigen Sie diese jedoch um es als zugeordnetes Repository unter einem Beitrag hinzuzufügen, damit Abhängigkeiten und / oder zusätzliche Eclipse-Funktionen heruntergeladen werden können.
  • Fügen Sie für jedes Plugin einen Beitrag mit einer Bezeichnung und darunter mindestens ein zugeordnetes Repository mit einem Speicherort hinzu .
  • Fügen Sie der Aggregation benutzerdefinierte Kategorieknoten hinzu , wenn Sie möchten. geben sie jeweils eine eindeutige Beschreibung , Identifikation und Etiketten .
  • Erweitern Sie den Knoten Repository-Browser unten> Erweitern Sie die Repo-URL> Erweitern Sie die installierbaren Einheiten > Sehen Sie sich die Funktionen unter Kategorien (falls vorhanden) und / oder unter Funktionen an .
  • Klicken Sie erneut auf die gewünschten Features und klicken Sie auf Zu benutzerdefinierter Kategorie hinzufügen (falls Sie diese verwenden). Andernfalls fügen Sie als übergeordnetes Feature zum übergeordneten zugeordneten Repository hinzu.
  • Klicken Sie erneut auf einen beliebigen Knoten> Aggregation erstellen.

Wichtiger Hinweis: Wenn Sie keine Features aus einem bestimmten Repository zuordnen, wird das gesamte Repository gespiegelt (die neuesten Versionen aller Bundles, glaube ich, nicht alles im Repo).

Zum Glück musste ich mich nicht mit Ausschlussregeln oder gültigen Konfigurationsregeln herumschlagen, was die Dinge komplizierter zu machen scheint. Ausschlussregeln können jedoch erforderlich sein, wenn die Repositorys Bundles mit Abhängigkeitskonflikten enthalten. In diesem Fall müssen ein oder mehrere widersprüchliche Bundles ausgeschlossen werden.

Während b3 Aggregator normalerweise nur die neueste Version aller Funktionen herunterlädt, die Sie zugeordnet haben (und deren Abhängigkeiten), werden die veralteten Versionen in Ihrer Aggregation akkumuliert , wenn Sie Build Aggregation im Laufe der Zeit wiederholt verwenden, wenn neue Versionen veröffentlicht werden. Sie könnten Clean und Build Aggregation verwenden , dies bedeutet jedoch, dass Sie alles erneut herunterladen müssen. Fügen Sie stattdessen einfach eine weitere .b3aggr-Aggregationsdatei hinzu, legen Sie den Build-Stamm fest, fügen Sie Ihre Konfigurationen hinzu und fügen Sie einen Beitrag mit einem zugeordneten Repository hinzu, indem Sie den Pfad zum finalVerzeichnis Ihres lokalen Spiegels verwenden . Ordnen Sie keine Features zu und erstellen Sie keine Kategorien. Dann erstellen Sie Aggregation und nur die neuesten Versionen von Ihrem Spiegel werden aggregiert!

PolyTekPatrick
quelle
2

Ich habe mich gerade mit diesem Problem befasst und es behoben, indem ich den Anweisungen in diesem Handbuch gefolgt bin . Führen Sie zusammenfassend die folgenden Befehle auf Ihrem Terminal im Eclipse-Ordner aus:

  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

Wobei $1sich auf die URL zum Online-Repository und $2auf den Pfad zum lokalen Ordner bezieht. Zum Beispiel, um Vrapper auf meinen Windows-Desktop herunterzuladen:

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

$ 2 = C: / Users / foo / Desktop

Übertragen Sie den Ordner ohne Internetverbindung auf den Computer. Starten Sie dann Eclipse -> Hilfe> Neue Software installieren. Geben Sie das lokale Repository (dh den Ordner, den Sie gerade übertragen haben) für die Installation an. Das sollte funktionieren.

Zhiyuan-Amos
quelle
Entspricht der vorhandenen Antwort in derselben Frage: stackoverflow.com/a/1907322 . Bitte stimmen Sie stattdessen der vorhandenen Antwort zu und fügen Sie Kommentare für kleinere Beiträge hinzu.
Chry Cheng
Ich habe die vorhandene Antwort beim ersten Lesen nicht verstanden. Deshalb habe ich nach zusätzlichen Informationen gesucht und meine Antwort hier veröffentlicht. Das OP von stackoverflow.com/questions/38571201/… war ebenfalls der Ansicht, dass die Antwort "veraltet zu sein scheint". Aber ja, ich stimme zu, dass ich stattdessen einen Kommentar hätte posten sollen, danke!
Zhiyuan-Amos
1
Diese Antwort enthält viel klarere Anweisungen als die akzeptierte Antwort und ist die, die ich verwendet habe. Vielen Dank für die Bereitstellung.
Johannes Jesus