Wie spiegele ich eine Funktion wider?
Frage
Mit dem P2 Ameisenaufgaben, Es ist ziemlich einfach, die Plugins für eine Funktion zu spiegeln.
Aber wie spiegele ich alles, was notwendig ist, um eine Funktion zu installieren?
Lösung
Konnte nicht bekommen p2.mirror
Arbeiten; Die Aufgabe spiegelt entweder zu viel wider (wie alle Versionen einer Funktion, auch wenn Sie nur an der letzten oder einem bestimmten interessiert sind) und/oder zu wenig (wie nur die Funktion, aber keine der Abhängigkeiten).
Meine Lösung war so:
- Eclipse zu
eclipse-template
- Erstellen Sie eine Kopie als
eclipse-install
- Installieren Sie die Funktion in
eclipse-install
- Löschen Sie jede Datei in der Kopie, die in der Version von Schritt 1 vorhanden ist (
cd eclipse-template ; find . -type f -exec rm "../eclipse-install/{}"
).
Dadurch bleibt die Funktions- und Plugin -Dateien. Verwenden org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher
Um das in ein P2 -Repo zu verwandeln (Siehe die Dokumente für Details).
Update 2011-11-01 Es gibt eine andere Lösung, wenn Sie dies nicht aus der Befehlszeile ausführen müssen.
- Erstellen Sie eine "Zieldefinition" in einem Eclipse -Projekt (erstellen Sie eine neue oder verwenden Sie eine vorhandene, spielt keine Rolle).
- Fügen Sie dieser *.Target -Datei Update -Sites hinzu
- Wählen Sie die gewünschten Funktionen aus
- Klicken Sie in der oberen rechten Ecke des Target Definition -Editors auf die winzige Schaltfläche "Exportieren" (neben "Setzen Sie als Zielplattform").
Dadurch werden alle ausgewählten Funktionen mit der genauen Version exportiert, die Sie sowie alle Abhängigkeiten in einem Ordner Ihrer Wahl ausgewählt haben.
Der Zieleditor ist etwas ungeschickt und langsam, aber er funktioniert.
Behalten Sie die Datei unter der Versionskontrolle Weil der Zieleditor manchmal durcheinander ist.
Andere Tipps
Ich verwende den folgenden Ant -Code zum Spiegel 2 -Funktionen in einem einzigen Repository:
<!-- Creates single p2 repo from 2 repos -->
<p2.mirror>
<repository location="file:///${DESTINATION}/repo-name" append="false"/>
<source>
<repository location="file:///${feature1-repo}/feature1"/>
<repository location="file:///${feature2-repo}/feature2"/>
</source>
</p2.mirror>
Darüber hinaus können Sie die verwenden <iu>
und die ID der Funktion, um die zu spiegelende Funktion anzugeben. Die Features -ID muss folgendermaßen angegeben werden:
your.feature.id.group.group.group
Wenn Sie bestimmte Plattenformkonfigurationen für Ihre Funktion haben, wird die IU
your.feature.id.win32.win32.x86 (OS, Widget system, Architecture)