Wo/Wie Eclipse Plugin einhängen für Jar-Export?

Status
Nicht offen für weitere Antworten.

raiha

Mitglied
Hi,

versuche gerade ein Plugin zu bauen, welches (nach dem Export als Jar-File aus Eclipse herraus) das Jar noch passend signiert. Habe 2 Probleme und hoffe, dass Ihr mir ein paar Stichworte geben könnt.

1. Wo/Wie müsste ich das Plugin einhängen, dass ich das Jar noch in Eclipse "verändern" kann?

2. Wie rufe ich den Kommandozeilen-basierten JarSigner aus meinm Plugin heraus auf und bekomme die Ausgabe visualisiert? Von maven her kenne ich, dass in der IDE ja auch "Kommandozeilen-Output" angezeigt werden können.

Danke und Gruß
Raine
 

Wildcard

Top Contributor
Also zunächst mal: wenn es dir nur um die Funktionalität als solche geht, kannst du das bspw. mit einem Ant Script machen.
Wenn du allerdings einen solchen Wizard anbieten willst, dann ist das natürlich auch machbar, allerdings musst du einen neuen Wizard erstellen, du kannst nicht einfach den existierenden Modifizieren (wenn du nicht JDT selbst modifzieren willst).

1)Du hängst dich einfach unter org.eclipse.ui.exportWizards ein und gibst dort deinen signed jar wizard an. Der kann dann natürlich vom bestehenden erben (org.eclipse.jdt.internal.ui.jarpackager.JarPackageWizard) und ihn entsprechend modifizeren.

2) Aufrufen wie in jedem anderen Java Programm auch. Anzeigen kannst du es über zB die ConsoleView. Das ist eigentlich ziemlich selbsterklärend, schau es dir einfach mal an und frag nach wenn du Probleme hast.
 

raiha

Mitglied
Hallo,

danke für die Hilfe. Punkt 2 mit ConsoleView und exec() konnte ich komplett abhaken :).
Bei Punkt 1 (Erweiterung des exportWizards) stehe ich aber noch ein bisschen auf dem Schlauch.

Habe jetzt einen neuen Abschnitt in der plugin.xml

<extension
point="org.eclipse.ui.exportWizards">
</extension>

Aber wie geht es jetzt weiter. Was für eine Klasse müsste ich jetzt stricken und wie, dass ich später "meinen Export" wählen kann?

Danke und Gruß
Rainer
 

raiha

Mitglied
Hi,

bin jetzt einen Schritt weiter. Habe meinen eigenen Jar-Export Wizard als Plugin eingehängt. Dieser erbt alle Funtionalität vom org.eclipse.jdt.internal.ui.jarpackager.JarPackageWizard. Jetzt stehe ich aber wieder auf dem Schlauch. Wie bekomme ich da jetzt meine eigenen Funktionalität rein?

1. Gui erweitern
2. Wenn er mit dem Exportieren fertig ist, noch selbst was mit dem Jar anstellen (abh. von den GUI-Einstellungen).

Danke und Gruß
Rainer

Code:
package test.ExportWizards;

import org.eclipse.jdt.internal.ui.jarpackager.JarPackageWizard;
import org.eclipse.jface.dialogs.IDialogSettings;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.wizard.IWizardContainer;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IExportWizard;
import org.eclipse.ui.IWorkbench;

public class ExportWizard extends JarPackageWizard implements IExportWizard {
	
	public ExportWizard() {
		super();
	}

	public boolean performFinish() {
		return super.performFinish();
	}
	 
	public void init(IWorkbench workbench, IStructuredSelection selection) {
		super.init(workbench, selection);
	}

	@Override
	public void addPages() {
		super.addPages();
	}

	@Override
	public boolean canFinish() {
		return super.canFinish();
	}

	@Override
	public void createPageControls(Composite arg0) {
		super.createPageControls(arg0);
	}

	@Override
	public void dispose() {
		super.dispose();
		
	}

	@Override
	public IWizardContainer getContainer() {
		return super.getContainer();
	}

	@Override
	public Image getDefaultPageImage() {
		return super.getDefaultPageImage();
	}

	@Override
	public IDialogSettings getDialogSettings() {
		return super.getDialogSettings();
	}

	@Override
	public IWizardPage getNextPage(IWizardPage arg0) {
		return super.getNextPage(arg0);
	}

	@Override
	public IWizardPage getPage(String arg0) {
		return super.getPage(arg0);
	}

	@Override
	public int getPageCount() {
		return super.getPageCount();
	}

	@Override
	public IWizardPage[] getPages() {
		return super.getPages();
	}

	@Override
	public IWizardPage getPreviousPage(IWizardPage arg0) {
		return super.getPreviousPage(arg0);
	}

	@Override
	public IWizardPage getStartingPage() {
		return super.getStartingPage();
	}

	@Override
	public RGB getTitleBarColor() {
		return super.getTitleBarColor();
	}

	@Override
	public String getWindowTitle() {
		return super.getWindowTitle();
	}

	@Override
	public boolean isHelpAvailable() {
		return super.isHelpAvailable();
	}

	@Override
	public boolean needsPreviousAndNextButtons() {
		return super.needsPreviousAndNextButtons();
	}

	@Override
	public boolean needsProgressMonitor() {
		// TODO Auto-generated method stub
		return false;
	}

	@Override
	public boolean performCancel() {
		return super.performCancel();
	}

	@Override
	public void setContainer(IWizardContainer arg0) {
		super.setContainer(arg0);		
	}
}
 

raiha

Mitglied
Wieder mal ein UPDATE:

In der Eclipsedoku sind ein paar Worte zu meinem Problem beschrieben.

Help - Eclipse SDK

Man kann es wohl mittels "JarPackageData" lösen. Aber wie und an welcher Stelle schaffe ich das aus meinem ExportWizard?
Hat jemand eine Idee?

Danke und Gruß
Rainer
 

Wildcard

Top Contributor
Im einfachsten Fall überschreibst du einfach doFinish, rufst erst super auf um das jar dann anschließend post mortem zu signieren. Wenn du noch mehr machen willst, dann solltest du wohl addPages überschreiben und zB dort noch eine eigene einhängen.
 

raiha

Mitglied
Im einfachsten Fall überschreibst du einfach doFinish, rufst erst super auf um das jar dann anschließend post mortem zu signieren. Wenn du noch mehr machen willst, dann solltest du wohl addPages überschreiben und zB dort noch eine eigene einhängen.

Sowas dachte ich mir schon :D. Wie aber komme ich in performFinish() an das erzeugte Jar bzw. dessen Pfad ran?
Code:
	public boolean performFinish() {
		return super.performFinish();
	// ???
}

Danke und Gruß
Rainer
 

raiha

Mitglied
*schnüff* - Man kommt zwar im performFinish() im Debugger via Super() an die Attribute (auch das Feld in dem das *.jar steht ran) aber das war's dann auch. Da ist sichtbarkeitstechnisch scheinbar nichts zu machen :-(. Die Interfaces geben das einfach nicht her. Will man das lösen, muß man vermutlich an org.eclipse.jdt.ui ...jar ran und da was drehen. Ich glaube, dass ist aber der Aufwand nicht wert.

Trotzdem Danke für die viele Hilfe.

Gruß
Rainer
 

Wildcard

Top Contributor
Ist alles in den JarPackageData. Mach einfach deinen eigenen Wizard, es verbietet dir ja niemand die gleichen Pages wie der Orginal Wizard einzusetzen.
 

raiha

Mitglied
Ist alles in den JarPackageData. Mach einfach deinen eigenen Wizard, es verbietet dir ja niemand die gleichen Pages wie der Orginal Wizard einzusetzen.

Und was ist mit dem SourceCode der "originalen" Pages? Einfach copy/paste und dann mein eigendes Control + Behandlung mit rein? Via Vererbung lässt sich das leider nicht elegant lösen.

Gruß
Rainer
 

Wildcard

Top Contributor
Die Pages sind doch eigene Klassen, die kannst du einfach wieder einbinden (und der Wizard selbst hat nicht viel Code)
 

raiha

Mitglied
Die Pages sind doch eigene Klassen, die kannst du einfach wieder einbinden (und der Wizard selbst hat nicht viel Code)

Was meinst du mit einbinden? Eigene Implentierungen die die org. Klasse extenden geht ja leider nicht, weil die Klassen nicht sichtbar sichtbar sind:-(. Oder meinst du nur die Wizardklasse neu implementieren und die org Pages-Klassen verwenden?
Code:
public class ExportWizard extends JarPackageWizard implements IExportWizard {
...
}

Gruß Rainer
 

raiha

Mitglied
Genau. eigenen Wizard schreiben und in addPages vorhandene benutzen

Leider kann ich die bestehenden Pages mangels Sichbarkeit nicht "adden".

Code:
public class MyJarPackageWizard extends Wizard implements IExportWizard {

	...
	
	public void addPages() {
		super.addPages();
		...
		fJarOptionsWizardPage= new JarOptionsPage(fJarPackage);
		addPage(fJarOptionsWizardPage);
		addPage(new JarManifestWizardPage(fJarPackage));
		addPage(new JarMyPage(fJarPackage));
	}
	...
}

So kann ich beispielsweise keine JarOptionsPage adden. Hier müsste ich ja org.eclipse.jdt.internal.ui.jarpackager.JarOptionsPage importieren, was wegen der Sichtbarkeit verboten ist. Es kann doch unmöglich sein, dass ich hier alle einzelnen Pages Klassen ausimplementieren muß. Einfach nur in eigenen Klassen extenden geht ja wegen der Sichbarkeit leider auch nicht :-(

Danke und Gruß
Rainer
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Eclipse Plugin PreferencePage BooleanFieldEditor Plattformprogrammierung 1
F OSGi Plugin unter Eclipse arbeitet anders als wenn veröffentlicht Plattformprogrammierung 2
R Einfaches Eclipse-Plugin-Beispiel funktioniert nicht Plattformprogrammierung 5
C plugin development environment eclipse Plattformprogrammierung 4
M Keybinding in Eclipse Plugin Plattformprogrammierung 3
B Eclipse Plugin Einstellungsleiste Plattformprogrammierung 2
O Eclipse Plugin - Einfachstes Problem, das es gibt. Plattformprogrammierung 2
3 Eclipse Editor Plugin selektiert Projekt nicht Plattformprogrammierung 10
T RCP Eclipse RCP: Wo/wann im Plugin ist workbench initialisiert? Plattformprogrammierung 14
C Eclipse Plugin NoClassDefFoundError Plattformprogrammierung 4
M Eclipse Plugin Entwicklung - NoClassDefFoundError Plattformprogrammierung 10
C Eclipse Plugin Entwicklung: Editor für Flussdiagramme Plattformprogrammierung 6
B RCP eigenes Eclipse Plugin wird nicht aufgelöst Plattformprogrammierung 7
P Wie bekomme ich ICompilationUnit aus dem event? bei Eclipse-Plugin Plattformprogrammierung 3
X Datei in einem Eclipse Projekt über Plugin zugreifen Plattformprogrammierung 2
hdi Frage zu Eclipse Plugin Development Plattformprogrammierung 12
D Canvas auf View in Eclipse PlugIn Plattformprogrammierung 3
H Bibliotheken in Eclipse-Plugin-Projekt verwenden. Plattformprogrammierung 18
H Eclipse-Plugin erstellen Plattformprogrammierung 22
hdi Schwierigkeiten mit Plugin für EPF (Eclipse Process Framework) Plattformprogrammierung 3
hdi Problem bei Eclipse Plugin Export Plattformprogrammierung 9
H Eclipse Plugin Dateihandling Plattformprogrammierung 2
A Eclipse Plugin Programmierung Dateien Refreshen Plattformprogrammierung 2
F Eclipse Plugin - Rückgabewert einer Methode Plattformprogrammierung 4
R Eclipse RCP - Plugin erstellen Plattformprogrammierung 2
lumo [Eclipse RCP] Plugin OHNE visuals Plattformprogrammierung 7
R Eclipse RCP vs. Plugin Entwicklung Plattformprogrammierung 5
B Eclipse plugin fuer dummys Plattformprogrammierung 11
N Eclipse RCP Plugin aus jar starten Plattformprogrammierung 7
M Eclipse Plugin Depedencies auslesen... Plattformprogrammierung 14
V [erledigt] Eclipse plugin startet nicht Plattformprogrammierung 3
S Eclipse-Plugin + Velocity + Files lesen Plattformprogrammierung 3
C AST (Abstract Syntax Tree)-Generierung für Eclipse-Plugin Plattformprogrammierung 5
V Javadoc an Eclipse Plugin anfügen Plattformprogrammierung 4
V JNI in Eclipse Plugin Plattformprogrammierung 17
F Eclipse plugin ausserhalb von Eclipse starten Plattformprogrammierung 4
byte [ Eclipse ] NoClassDefFoundError bei neuem Plugin Plattformprogrammierung 4
I Eclipse-Plugin: Perspektive mit 2 Views Plattformprogrammierung 5
G Frage zu Eclipse Plugin Plattformprogrammierung 5
E OSGi Eclipse Plug-in programmierung: java.lang.NullPointerException: Cannot enter synchronized block because "profile" is null Plattformprogrammierung 4
R Eclipse Bundles Plattformprogrammierung 2
Robertop RCP Command in bereits bestehendes Eclipse-Menü einbauen Plattformprogrammierung 4
T Java Projekt läuft nur in Eclipse Plattformprogrammierung 6
D RCP P2-Repository für Eclipse-Plugins Plattformprogrammierung 0
M Debuging in Eclipse Annotations Processor Plattformprogrammierung 0
D Nach Sprachpaket Installation kann eclipse nicht mehr gestartet werden Plattformprogrammierung 4
L0MiN Wie kann ich ein Klassendiagramm aus Eclipse heraus erstellen? Plattformprogrammierung 5
M Eclipse Probleme beim Ausführen eines Programms Plattformprogrammierung 3
feinperligekohlensaeure Eclipse Workspace gemeinsam Nutzen -> keine .project Datei Plattformprogrammierung 1
F Eclipse Build Path auf benötigte Projekte Plattformprogrammierung 4
B Daten von Eclipse extern sichern Plattformprogrammierung 2
B Eclipse zeigt Fehler nach Java-Update auf 1.8.0_40 Plattformprogrammierung 3
VfL_Freak [Eclipse] Fehleranzeige im Reiter "Problems" Plattformprogrammierung 1
S Errors in workspace bei eclipse Plattformprogrammierung 3
T eclipse bietet keine META-INF an Plattformprogrammierung 1
N Eclipse wo starten Plattformprogrammierung 6
A Eclipse schließt einfach ohne Fehlermeldung Plattformprogrammierung 4
W Eclipse vergißt beim Exportieren Resources-Ordner Plattformprogrammierung 11
A RCP Eclipse e4 und Injection-Contexts Plattformprogrammierung 0
K Eclipse fährt nicht mehr hoch. Metadatendatei schuld? Plattformprogrammierung 7
C [Eclipse RCP E4]InjectionException: no actual value was found for the argument "MDirtyable" Plattformprogrammierung 8
T Eclipse Eigenschaften hinzufügen Plattformprogrammierung 2
M RCP [Eclipse RCP 3.4] ViewTab Kontextmenu "Alle schließen" Plattformprogrammierung 0
D Problem mit eclipse Plattformprogrammierung 2
S Verschieben des Verzeichnis .eclipse aus Userprofile Plattformprogrammierung 3
A RCP Kann kein Eclipse 4 Projekt anlegen Plattformprogrammierung 0
S RCP Exportiertes RCP Produkt lädt Datei nicht, bei Start aus Eclipse wird Datei jedoch gefunden Plattformprogrammierung 6
G Eine Library in Eclipse zur Verfügung stellen Plattformprogrammierung 14
Gregorrr Eclipse RCP Product Build-Nummer + Jenkins Plattformprogrammierung 6
H OSGi OSGi + Logback + slf4j - Eclipse Run Configuration Plattformprogrammierung 7
R RCP Commands nutzen / org.eclipse.ui.file.save Plattformprogrammierung 7
O Installiere externe Methode "containsNone" in Eclipse Plattformprogrammierung 2
TheWhiteShadow RCP Konstrukt für Editor in Eclipse gesucht. Plattformprogrammierung 3
B Eclipse Probleme mit build Plattformprogrammierung 8
H Keine Hilfe/API mehr in Eclipse Juno? Plattformprogrammierung 4
B Neue SuppressWarning in Eclipse Juno Plattformprogrammierung 6
B Eclipse Property Page Plattformprogrammierung 6
B Eclipse PreferencePage Plattformprogrammierung 3
B Birt-Previewer über Eclipse Plattformprogrammierung 14
J Eclipse Plug-In für UML-Diagramme Problem Plattformprogrammierung 4
R Eclipse RCP Tabellen-View (Anfängerfrage) Plattformprogrammierung 3
C Eclipse: Notification beim umbennen von Methoden? Plattformprogrammierung 4
schalentier Eclipse Sourcecode Plattformprogrammierung 4
A Eclipse undo/redo button reagiert nicht auf Änderungen in der OperationHistory Plattformprogrammierung 5
P Eclipse M2_REPO (NON MODIFIABLE) Plattformprogrammierung 8
B Eclipse: Contextmenu id erhalten? Plattformprogrammierung 9
H Datei in eclipse wird nicht erkannt Plattformprogrammierung 3
O Neues Tastenkürzel für Eclipse Editorfenster registrieren Plattformprogrammierung 2
Madlip RCP eclipse.ui.bindings (Key-Problematik) Plattformprogrammierung 2
S Eclipse vs. JavaMail vs. Ubuntu vs. Windows Plattformprogrammierung 3
M eclipse führt applikationen nicht mehr aus Plattformprogrammierung 6
S Eclipse: Auf CTRL-C/CTRL-V im Package Explorer? Plattformprogrammierung 4
M Eclipse und Hilfen Plattformprogrammierung 5
G Eclipse buggt rum!!! Plattformprogrammierung 4
B Eclipse RCP und Java 7 Plattformprogrammierung 7
G RCP Eclipse Editor + Guice Plattformprogrammierung 8
G Eclipse Plug-in: wie refreshe ich eine combobox? Plattformprogrammierung 4
M Eclipse Plug-in: Wie eine Grafik einfügen? Plattformprogrammierung 20
M RCP [Eclipse RCP] Feature Export und "Fehler"... Plattformprogrammierung 3
P Eclipse speichert keine Änderungen Plattformprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben