Frage

Vor p2, könnte man eine benutzerdefinierte Installation Handler mit einem Feature schreiben, die jede ‚custom‘ Aufgabe während der Installation zu tun ausgeführt wurde.

Ich sehe, dass mit p2 den benutzerdefinierten Installation Handler wird nicht mehr unterstützt. Ich höre immer wieder über ‚custom Berührungspunkte‘ ist der Ersatz für das.

Allerdings kann ich nicht jedes konkretes Beispiel / Dokumentation für sie finden.

Kann jemand mir sagen, wie die Funktionalität von benutzerdefinierten bekommen installieren Handler mit den p2-Update-Managern.

Edit: Eine Beschreibung von dem, was ich tun will -

Ich brauche die eclipse.ini Datei zu bearbeiten und legen Sie die -Xmx Eigenschaft auf einen Wert basierend auf, ob wir in einem 64-Bit oder 32-Bit-env ausgeführt werden.

Edit 2: Ich hat versucht, eine p2.inf Datei in meinem Feature mit folgenden Zeile zu schaffen -

instructions.install = \
addJvmArg(jvmArg:-Xmx900m);

instructions.install.import= \
org.eclipse.equinox.p2.touchpoint.eclipse.addJvmArg,

und es funktioniert, aber es ist nicht zwischen 32 und 64 Bit unterschieden wird.

War es hilfreich?

Lösung

p2.inf auf jeden Fall der richtige Ort, um kundenspezifische Aktionen auszuführen. Es ist ein guter Ort, um hinzuzufügen vm Argumente in ini. Sie könnten ein put p2.inf unter der Funktion / Plug-in.

aktualisiert am 20. Dezember .

Ich habe versucht, es auf meinem eigenen Umfeld, es funktioniert gut verschiedenen vm args zu setzen, wenn die gleiche Funktion auf Linux 32bit und 64bit zu installieren. Sie könnten den Beispielcode herunterladen mit ihm zu spielen.

#create a requirement on the IU fragment we are creating
requires.2.namespace=org.eclipse.equinox.p2.iu
requires.2.name=configure.com.example.yourfeature.linux.x86
requires.2.range=[1.0.0,1.0.0]
requires.2.greedy=true
requires.2.filter=(&(osgi.os=linux)(osgi.arch=x86))

#create a IU frament named configure.com.example.yourfeature.linux.x86 for linux 32 bit
units.0.id=configure.com.example.yourfeature.linux.x86
units.0.version=1.0.0
units.0.filter=(&(osgi.os=linux)(osgi.arch=x86))
units.0.provides.1.namespace=org.eclipse.equinox.p2.iu
units.0.provides.1.name=configure.com.example.yourfeature.linux.x86
units.0.provides.1.version=1.0.0
units.0.instructions.configure=addJvmArg(jvmArg:-Xmx500m);
units.0.instructions.configure.import=org.eclipse.equinox.p2.touchpoint.eclipse.addJvmArg,

#create a requirement on the IU fragment we are creating
requires.3.namespace=org.eclipse.equinox.p2.iu
requires.3.name=configure.com.example.yourfeature.linux.x86_64
requires.3.range=[1.0.0,1.0.0]
requires.3.greedy=true
requires.3.filter=(&(osgi.os=linux)(osgi.arch=x86_64))

#create a IU frament named configure.com.example.yourfeature.linux.x86_64 for linux 64 bit
units.1.id=configure.com.example.yourfeature.linux.x86_64
units.1.version=1.0.0
units.1.filter=(&(osgi.os=linux)(osgi.arch=x86_64))
units.1.provides.1.namespace=org.eclipse.equinox.p2.iu
units.1.provides.1.name=configure.com.example.yourfeature.linux.x86_64
units.1.provides.1.version=1.0.0
units.1.instructions.configure=org.eclipse.equinox.p2.touchpoint.eclipse.addJvmArg(jvmArg:-Xmx900m);

Andere Tipps

Ich denke, die vollständigste docs über die Angelegenheit der Eclipse-Wiki . Du bist wahrscheinlich in „native Berührungspunkt Aktionen“ interessiert, aber es ist auch möglich, eigene Berührungspunkt Aktion zu implementieren, das heißt eine Java-Klasse, die als Teil des Installationsprozesses aufgerufen wird.

EDIT: Customizing Metadaten einige Informationen enthält, was Sie in der p2 setzen können. iNF-Datei. Das Beispiel ist:

 instructions.install = \
    ln(targetDir:@artifact,linkTarget:foo/lib.1.so,linkName:lib.so);\
    chmod(targetDir:@artifact,targetFile:lib/lib.so,permissions:755);
 instructions.install.import= \
    org.eclipse.equinox.p2.touchpoint.natives.ln,\
    org.eclipse.equinox.p2.touchpoint.natives.chmod

Es gibt zwei Artikel, die erklären, wie dies zu erreichen:

Zuerst eine Abdeckungen eine größere Auswahl Bit, das zweite ist nur etwa P2 Berührungspunkte.

ACHTUNG: , wenn wir individuelle Berührungspunkte zu unserem Plugin hinzugefügt, es begann Deadlocks (oft, aber nicht immer) bei der Installation (wir wollten nicht das Risiko und entfernt sie). Vielleicht haben wir etwas falsch, aber das ist etwas bewusst zu sein.

Built-in Berührungspunkte scheint zu funktionieren, aber.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top