11 Stimmen

Erstellen einer Eclipse-"Distribution"?

Im Zusammenhang mit der Erstellung einer benutzerdefinierten Eclipse-Distribution für ein Entwicklungsteam.

Wie würde ich vorgehen, um eine benutzerdefinierte Eclipse-Distribution zu erstellen, die einen bestimmten Satz von Plugins enthält? Wäre es schwierig, auch eine Art Update-Site hinzuzufügen, um bestimmte Versionen der Plug-ins, von denen die angepasste Eclipse aktualisieren würde setzen?

0 Stimmen

Web-Suchmaschinen verstehen das Wort in Anführungszeichen nicht ""

0 Stimmen

Yoxos bietet dafür eine Lösung: yoxos.eclipsesource.com

0 Stimmen

Siehe auch Genuitec Secure Delivery Center: genuitec.com/produkte/sdc

19voto

Jed Anderson Punkte 893

Mir ist klar, dass dies ein alter Beitrag ist, aber er taucht immer wieder in meinen Suchanfragen auf, und ich möchte angesichts der vielen Änderungen und der Reife, die bei der Bereitstellung von Eclipse-Plug-ins eingetreten ist, ein paar weitere Details hinzufügen... Also, für diejenigen, die auf dieser Seite landen, hoffentlich wird das Folgende Ihnen weiterhelfen!

Um meine persönlichen Erkenntnisse zusammenzufassen:

  • In diesem Bereich hat es viele Verbesserungen gegeben, sowohl im Open-Source-Bereich als auch auf kommerzieller Ebene.
  • Die Komplexität des Vertriebs ist oft größer als erwartet
  • Bauen Sie auf dem Rücken der anderen, es lohnt sich!

Und obwohl ich für ein Unternehmen arbeite, das eine kommerzielle Lösung anbietet ( http://genuitec.com/sdc ), habe ich versucht, im Folgenden mit den praktischen Aspekten der Bereitstellung von Eclipse mit freien Lösungen zu antworten.

Also, ohne weitere Umschweife...

Die absolute Minimallösung besteht darin, ein Eclipse-Paket von Eclipse.org herunterzuladen, die gewünschten Plugins hinzuzufügen, den Parameter -clean in der eclipse.ini zu setzen, das Verzeichnis zu zippen und es an Ihr Team weiterzugeben. Solange Sie die Features von Ihrer internen Update-Site hinzugefügt haben (und die URL konstant bleibt), kann Eclipse von dort aktualisieren.

Das wird beim ersten Mal funktionieren, und da es einfach ist, fangen die meisten Leute so an. Aber es ignoriert den Lebenszyklus Ihres Werkzeugstapels. Hier sind einige Schmerzpunkte, auf die ich gestoßen bin, als ich Kunden mit ihren Eclipse-Werkzeugen geholfen habe:

  • Eclipse-Pakete: Sie müssen ein Eclipse/p2-Guru sein, um Eclipse-Pakete einzurichten und zu pflegen. Mit den EPP-Werkzeugen können Sie Ihre eigenen Pakete erstellen, aber Sie benötigen eine Menge Fachwissen über Eclipse-Pakete, p2 und die EPP-Werkzeuge. Ein guter Startpunkt ist http://wiki.eclipse.org/EPP/How_to_build_a_package_locally

  • Plugins: Um Plugins zu finden, muss man lange nach Update-Seiten suchen, und dann kann man nie sicher sein, dass man genau die richtigen Binärdateien hat. Manchmal werden Update-Seiten nicht mehr aktualisiert, oder Sie verlieren die Unterstützung für Ihre Eclipse-Version, wenn die Plugin-Entwickler eine neue Update-Seite veröffentlichen. Ein Vorschlag ist, lokale Kopien der Update-Seiten zu erstellen, um die Anfälligkeit für solche Probleme zu minimieren.

  • Eclipse Updates: Wenn Sie möchten, dass Ihr Team die Eclipse-Version wechselt, müssen Sie Ihren Tool-Stack für die nächste Version neu erstellen und alle Mitarbeiter müssen neu installieren. Es gibt keine Möglichkeit, dies zu umgehen, wenn Sie nur eine Zip-Datei versenden.

  • Plugin-Updates: Eclipse ist so konzipiert, dass immer wieder die neue Version von Plugins installiert wird, aber in großen Produktionsteams kann das kontraproduktiv sein. Lokale Spiegelungen von Update-Sites können dabei helfen, solange Ihr Team nicht loszieht und seine eigenen Update-Sites hinzufügt.

  • Sicherheit: Müssen Sie Ihr Team daran hindern, bestimmte Software zu installieren? Wie wäre es, signierte Tools zu verlangen? Sie werden Plugins schreiben müssen, um die Funktionen Ihres Pakets einzuschränken, und Sie müssen die Plugins möglicherweise selbst signieren. Der PDE-Build bietet eine gewisse Unterstützung für das Signieren.

  • Langfristige Instandhaltung: Die Wiederherstellung eines Tool-Stacks in ein paar Jahren (oder manchmal in ein paar Monaten) kann nahezu unmöglich sein, da die Unterstützung für verschiedene Versionen von Eclipse und verschiedene Plugin-Versionen im Eclipse-Ökosystem dynamisch kommt und geht. Speichern Sie Kopien Ihrer Eclipse-Pakete ab. Kaufen Sie große Festplatten. Spiegeln Sie die von Ihnen verwendeten Update-Sites.

  • Arbeitsbereich einrichten: Sie können Ihrem Team einen Eclipse zur Verfügung stellen, aber das ist nur der erste Schritt im Prozess. Die Automatisierung des Workspace-Setups, z. B. Voreinstellungen, Projekte, Checkstyle- oder PMD-Konfiguration, trägt wesentlich dazu bei, dass Ihr Team weniger Zeit mit der Vorbereitung der Arbeit verbringt. Hinzu kommt, dass sich diese Einstellungen häufig ändern, wenn Sie Projekte hinzufügen, was zu einem ständigen Verwaltungsaufwand führt. Ich habe gesehen, dass Teams bei der Weitergabe eines Zip-Archivs auch eine entsprechende WIKI-Seite oder etwas Ähnliches weitergeben. Normalerweise muss jeder Entwickler sicherstellen, dass er die Schritte befolgt.

  • Mehrere Pakete verwalten: Vielleicht haben Sie ein Paket für Ihr Entwicklungsteam und ein anderes für Ihr QA-Team. Und dann wächst Ihr Entwicklungsteam und teilt sich in zwei Gruppen mit leicht unterschiedlichen Tooling-Bedürfnissen auf, und jetzt braucht auch Ihr QA-Team mehrere Pakete. Und dann fangen Sie an, Ihr eigenes Plugin zusätzlich zu Eclipse auszuliefern, also ein weiteres Paket, das Sie verwalten müssen. Nach ein paar Jahren verbringen Sie Ihre gesamte Zeit mit der Erstellung von Eclipse-Paketen und werden zum Eclipse/P2/Update Site-Guru, ohne es überhaupt zu versuchen. Die Lösung ist natürlich, jemanden einzustellen, der das für Sie erledigt :)

  • SMS-Verteilung: Dies funktioniert recht gut mit einer Zip-Datei, aber das Verteilen von Aktualisierungen wird unübersichtlich. Normalerweise verwenden die Leute SMS, um die erste Installation durchzuführen, und dann ist es die Aufgabe des Entwicklers, sie auf dem neuesten Stand zu halten.

0 Stimmen

Vielen Dank für die ausführliche und nützliche Antwort. Eine Frage: Was bedeutet SMS? Ist es der Microsoft Systems Management Server?

0 Stimmen

In diesem Zusammenhang bedeutet es Software Management System oder System Management System (beides kann zutreffen). Diese Systeme können natürlich Ihre Unternehmenssoftware verwalten, d. h. das, was auf jedem Desktop in Ihrem Unternehmen installiert ist. Oft benötigen diese Systeme unbeaufsichtigte Installateure, damit sie Software aus der Ferne aktualisieren können.

0 Stimmen

In der Datei "configuration/config.ini" müssen Sie "clean" anstelle von "-clean" hinzufügen, nicht wahr? Sollte diese Zeile entfernt werden, nachdem der Benutzer seine Installation dieser "Distribution" zum ersten Mal gestartet hat?

5voto

paxdiablo Punkte 809679

Eclipse gehört nicht zu den Anwendungen, die "installiert" werden müssen, da es einfach in eine Verzeichnisstruktur kopiert werden kann und Verknüpfungen zum Ausführen eingerichtet werden können (ähnlich wie bei den BIRT-All-in-One-Distributionen).

Ich würde vorschlagen, es auf einem Rechner zu installieren, alle Plug-ins zu installieren und dann das Verzeichnis zu komprimieren, um es auf andere Rechner zu verteilen.

Sie brauchen nur einen Server, auf dem Sie nur die Versionen der Plug-ins installieren, die Sie benötigen, und sicherstellen, dass Ihre Distribution auf diesen Server verweist, bevor Sie die Zip-Datei erstellen. Es gibt nichts, was Ihre Entwickler daran hindert, sich mit einer anderen Website zu verbinden.

2 Stimmen

Das Hauptproblem bei diesem Ansatz ist, dass Eclipse bei der Installation von Plugins den Installationspfad in seinen Metadaten verschlüsselt. Wenn Sie daher eine Eclipse-Installation von einem Benutzer zu einem anderen kopieren, wird sie furchtbar beschädigt.

0 Stimmen

@Guss, das kann für andere ein Problem sein. Wir neigen dazu, keine Benutzerverzeichnisse für solche Dinge zu verwenden, sondern speichern alles in c:\helios y c:\helios_workspace zum Beispiel. Die Benutzerverzeichnisse sind gut für gemeinsam genutzte Arbeitsplätze, aber nicht wirklich notwendig für unsere Art von Einrichtung, bei der jeder seinen eigenen Arbeitsplatz hat. Und ja, ich weiß, dass dies gegen die MS-Richtlinien verstößt, aber manchmal schlägt Pragmatismus den Dogmatismus :-)

0 Stimmen

Ich stimme zu, dass Ihr Anwendungsfall nützlich ist, aber Sie haben diesen Vorbehalt in Ihrer Antwort nicht erwähnt - obwohl er die Einrichtung eines naiven Implementierers zerstören kann. In unserem System werden die Workstations von der IT-Abteilung verwaltet, und die Benutzer haben keinen Admin-Zugang. Daher ist es sinnvoll, eclipse im Verzeichnis des Benutzers zu installieren. In einem solchen Setup wird Ihre Methode nicht funktionieren und interessante (sprich: nicht offensichtliche und verwirrende) Fehlermeldungen anzeigen.

3voto

Paul Verest Punkte 55549

Um die ursprüngliche Frage von Lokki zu beantworten, kann der Teamleiter eine eigene "Distribution" als .p2f-Datei erstellen, die die ID des Plugins, die Update-Site und die genaue Version enthält, die verwendet werden soll.

Verwenden Sie (Datei -> Exportieren -> Installieren -> Softwareelemente in Datei), um eine Plugin-Listendatei (*.p2f) vorzubereiten,

Beispiel einer Datei

<?xml version='1.0' encoding='UTF-8'?>
<?p2f version='1.0.0'?>
<p2f version='1.0.0'>
  <ius size='5'>
    <iu id='org.chromium.sdk.feature.group' name='ChromeDevTools SDK' version='0.3.9.201302091448'>
      <repositories size='1'>
        <repository location='http://www.tomotaro1065.com/nodeclipse/updates/'/>
      </repositories>
    </iu>
    <iu id='org.chromium.debug.feature.group' name='Chromium JavaScript Remote Debugger' version='0.3.9.201302091448'>
      <repositories size='1'>
        <repository location='http://www.tomotaro1065.com/nodeclipse/updates/'/>
      </repositories>
    </iu>
    <iu id='com.eclipsesource.jshint.feature.feature.group' name='JSHint Eclipse Integration' version='0.9.6.20130319-2128'>
      <repositories size='1'>
        <repository location='http://github.eclipsesource.com/jshint-eclipse/updates/'/>
      </repositories>
    </iu>
    <iu id='markdown.editor.feature.feature.group' name='Markdown Editor' version='0.2.3'>
      <repositories size='1'>
        <repository location='http://winterwell.com/software/updatesite/'/>
      </repositories>
    </iu>
    <iu id='org.nodeclipse.feature.group' name='Nodeclipse' version='0.2.0.201302091448'>
      <repositories size='1'>
        <repository location='http://www.tomotaro1065.com/nodeclipse/updates/'/>
      </repositories>
    </iu>
  </ius>
</p2f>

dann (Datei -> Importieren -> Softwareelement aus Datei installieren)

Import -> Install Software Item from file

Eclipse Node.js IDE wird auf diese Weise zusammengesetzt.

Diese Frage bezieht sich auf Eclipse IDE: Installieren Sie eine Reihe von Plugins

0 Stimmen

Dies stieß auf einen Fehler in Eclipse Kepler bugs.eclipse.org/bugs/show_bug.cgi?id=409685 Wird hoffentlich in 4.3.1 (SR1) behoben sein.

0 Stimmen

Das ist eine großartige Antwort, eine andere Möglichkeit ist ' wiki.eclipse.org/ ', allerdings bin ich auf ein Problem gestoßen, bei dem nicht alle Plugins 'Features' sind, was bedeutet, dass sie nicht hinzugefügt werden können (es sei denn, man erstellt sie als Feature), Beispiel org.eclipse.ant.ui .

1 Stimmen

Das ist ein großer Lebensretter! Ich wünschte, ich könnte mehr als einmal hochstufen :P

1voto

javier.castanon Punkte 11

Für alle, die versuchen, ihre eigene Eclipse-Distribution zusammenzustellen, ist es interessant, sich mit dem Eclipse Packaging Project vertraut zu machen http://www.eclipse.org/epp/ . Um eine private Update-Site einzurichten, dient Nexus Professional von Sonatype genau diesem Zweck (kommerzielle Lizenz).

0voto

rbrayb Punkte 43179

Schließen Sie einfach den Reißverschluss C:\eclipse\plugins Verzeichnis und verteilen Sie es.

Stellen Sie nur sicher, dass die Entwickler Eclipse mit der Option "-clean" starten, um sicherzustellen, dass alle Änderungen übernommen werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X