Ecplise: Indigo Service Release 2 Maven 3.0.3 Google Plugin 3.1.0 GWT SDK 2.4.0 m2e Plugin 1.0.200 Wird beim Start der Applikation das nocache.js File nicht gefunden kann das einige Gründe haben, bei mir war das Problem die Umbenennung des ganzen Projekts. Im Web Deployment Assembly des Web Moduls wurde diese Namensänderung nicht automatisch nachgezogen und so wurde natürlich das nocache.js File nicht gefunden. Weg zur Einstellung: Web Modul -> Rechtsklick -> Properties -> Deployment Assembly (Dort fügt man die entsprechenden Folder hinzu).
Ecplise: Indigo Service Release 2
Maven 3.0.3
Google Plugin 3.1.0
GWT SDK 2.4.0
m2e Plugin 1.0.200
Wer GWT mit Maven und Eclipse verwenden möchte braucht manchmal ein dickes Fell.
[INFO] Compiling module myCompany.client.Frontend
[INFO] Finding entry point classes
[INFO] [ERROR] Unable to find type ' myCompany.client.Frontend '
[INFO] [ERROR] Hint: Previous compiler errors may have made this type unavailable
[INFO] [ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
Die Klasse existiert aber und es tritt auch kein Compile Fehler auf. Des Rätsels Lösung war der Ablageort des Frontend.gwt.xml. Wie bei Maven üblich wurde es in src/main/resources untergebracht und dort unter myCompany/client. Das mag aber nun das gwt-maven-plugin gar nicht und wirft den obigen Fehler aus. Verschiebt man das gwt.xml nun einen Folder runter in den Folder myCompany geht plötzlich der Build durch.
Unter Eclipse/RAD CVS-Commits für ganze Projekte anzuzeigen funktioniert nicht, das Plugin CVS Change Log for Eclipse konnte man früher ganz gemütlich in ein Plugin Verzeichnis einspielen und schon hatte man die entsprechende Funktion zur Verfügung. Für RAD 8.0.1 hat das nicht funktioniert.
Glücklicherweise gibt es ein anderes Projekt mit entsprechender Update Site, wo man einfach nur eine URL unter Help/Install new Software... eintragen muß und schon hat man die Funktionalität auch im RAD wieder zur Verfügung:
Maven 3.0.3
Eclipse Java EE IDE for Web Developers Indigo Service Release 2 20120216-1857
gwt-maven-plugin 2.4.0
build-helper-plugin 1.7
m2e - Maven Integration for Eclipse 1.0.200.20111228-1245
Google Plugin for Eclipse 3.7 2.6.1v20205091048-rel-r37
Will man mit dem org.codehaus.mojo.gwt-maven-plugin Archetype ein Skeleton GWT Projekt erzeugen kann das ein ziemlicher Task sein. Irgendwie hab ich das trotzdem hinbekommen, es gibt sicher andere und wahrscheinlich auch bessere Wege, aber ich beschreibe mal wie ich vorgegangen bin.
Zuallererst: Das m2eclipse Plugin von Sonatype muß deaktiviert oder deinstalliert werden, es ist meiner Meinung nach einer der Hauptgründe warum es so schwierig ist das Ganze hinzubekommen.
Dann ein neues Maven Projekt anlegen und den Archetype gwt-maven-plugin verwenden:
Danach füge ich im pom.xml mit dem build-helper-maven-plugin den zu generierenden Code zum Sourcepath hinzu (m2eclipse ignoriert das einfach, einer der Gründe, warum es raus mußte). Beim Probelauf für diesen Blogeintrag hatte das Projekt danach trotz deaktivierten m2e eine Maven Nature (am hinzugefügten M erkenntbar). Diese habe ich einfach deaktiviert, dann muckste m2e auch wirklich nicht mehr auf (Rechter Mausklick aufs Projekt -> Maven -> Disable Maven Nature).
Dann baue ich mir einen Launcher für das externe Maven und lasse das Ganze mal mit dem Goal install laufen:
Der Lauf geht inklusive Tests durch, auch die generierten Sourcen sind eingebunden, sieht einmal sauber aus.
Nun probiere ich das Ganze auch mal mit den Mavengoals clean gwt:run laufen zu lassen und siehe da, es funkt:
Auch im Browser sieht das sauber aus:
Im Prinzip nicht viel zu tun, es hat allerdings schon seine Zeit gebraucht bis ich mich durchgerungen habe das an sich tolle m2eclipse Plugin zu deaktivieren.
Am Ende noch der Projektbaum, wie er aussieht wenn alles gut gegangen ist:
IBM RAD 8.0.1 (Eclipse 3.6)
Maven 3.0.3
maven-jetty-plugin 6.1.26
selenium-maven-plugin 2.2
maven-surefire-plugin
Ich erstelle mir Integrationstests mit dem Seleniumplugin des Firefox (export TestCase as JUnit 4 (Webdriver)), bearbeite diese nach und lasse sie mit dem maven-jetty-plugin, selenium-maven-plugin und maven-surefire-plugin laufen.
Manchmal möchte man dann doch in seine Tests und in die zu testende Webapp reindebuggen, allerdings werden die Breakpoints ignoriert.
Abhilfe kann man schaffen, indem man im surefire-plugin den forkMode konfiguriert:
Obwohl Maven nicht embedded in der IDE läuft sondern über das m2eclipse Plugin eine externe Version gewählt wurde kann man sich nun kreuz und quer durch den Code debuggen.
Windows 7 SP1 32Bit
Eclipse IDE for C/C++ Developers Indigo Service Release 1
MinGW 20111118
Probiert man in Eclipse C Code zu debuggen verwendet man normalerweise GDB, in meinem Fall blieb der Debugger zwar am ersten Breakpoint stehen, läßt man das Teil weiterlaufen kommt diese Meldung in der Eclipse Console:
Windows 7 SP1
Eclipse IDE for C/C++ Developers Version: Indigo Service Release 1
Verwendet man unter Windows printf in seinem C Programm und erwartet sich beim Ausführen eine Ausgabe auf der Eclipseconsole muß darauf warten bis das Programm beendet ist. Sind noch einige scanf drinnen muß man die Daten "blind" eingeben.
Dieses Verhalten ist dem Windowseclipse geschuldet, Einstellungen wie man dieses Verhalten direkt in Eclipse verändern kann habe ich leider keine gefunden.
Allerdings 2 Wege wie man die Ausgabe trotzdem bekommt.
(Da in der Codedarstellung die spitzen Klammern Probleme machen habe ich in den Codebeispielen das include von stdio.h weggelassen.)
1. fflush(stdout) nach printf();
main(){
int wahl;
float betrag;
printf("\n\tE U R O R E C H N E R\n");
printf("\n1 DM --> EURO\n2 EURO --> DM");
printf("\n\nIhre Wahl: ");
fflush(stdout);
scanf("%i", &wahl);
if(wahl == 1){
printf("Bitte DM-BEtrag eingeben: ");
fflush(stdout);
scanf("%f", &betrag);
printf("\n%.2f DM sind %.2f EURO", betrag, betrag * 0.51129);
}
if (wahl == 2){
printf("Bitte EURO-Betrag eingeben: ");
fflush(stdout);
scanf("%f", &betrag);
printf("\n%.2f EURO sind %.2f DM", betrag, betrag * 1.95583);
}
}
2. setvbuf in der main methode
main(){
setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stderr, NULL, _IONBF, 0);
int wahl;
float betrag;
printf("\n\tE U R O R E C H N E R\n");
printf("\n1 DM --> EURO\n2 EURO --> DM");
printf("\n\nIhre Wahl: ");
scanf("%i", &wahl);
if(wahl == 1){
printf("Bitte DM-BEtrag eingeben: ");
scanf("%f", &betrag);
printf("\n%.2f DM sind %.2f EURO", betrag, betrag * 0.51129);
}
if (wahl == 2){
printf("Bitte EURO-Betrag eingeben: ");
scanf("%f", &betrag);
printf("\n%.2f EURO sind %.2f DM", betrag, betrag * 1.95583);
}
}
Windows 7 SP1 32 Bit
Eclipse IDE for C/C++ Developers Indigo Service Release 1
MinGW 20111118
Da Eclipse keinen C Compiler mitliefert muß man diesen selbst installieren. Nachdem mehrere Versuche cygwin zur Zusammenarbeit zu bewegen gescheitert sind bin, versuchte ich es mit MinGW, und siehe da, einfach den Installer ausführen und schon steht einem in Eclipse die entspreche Toolchain zur Verfügung, das Zeug compiliert einwandfrei und auch der Debugger haut hin.
Hier der direkte Link zur letzten Version des Installers: MinGW Installer
Sitzt man hinter einem Proxy muß man diesen in Eclipse eintragen um zu seinem Updates oder zum Eclipse Marketplace zu kommen. Hinterhältig wird die Sache wenn man dort den Active Provider auf Manual setzt und brav Host, Port, Auth und User einträgt und dann draufkommt, da tut sich nichts beim updaten, stundenlang, ohne Fehlermeldung.
Schuld daran kann der Eintrag in der Zeile SOCKS sein, wenn der Proxy das nämlich nicht unterstützt und Host und Port eingetragen sind versucht er das zu benutzen... auch endlos.
In einem früheren Post habe ich schon erklärt wie man den Source für Android in Eclipse nutzbar macht, habe nun aber kein .zip für 2.3.1 gefunden. Über git wärs zwar möglich sich das selber zusammen zu basteln, aber bequem wie man ist hätte man es gerne einfacher.
Und tatsächlich gibt es ein Eclipse Plugin, das einem dem Source anhängt, mit dem Eclipse Update Manager lädt man mittels dieser Adresse:
Es ist mühsam Androidprogramme zu debuggen, wenn man nicht in den Source der SDK reinlesen kann.
Hier eine kleine Anleitung, wie man für 1.5, 1,6 und 2.1 den Source sauber in Eclipse bekommt.
Dazu lädt man einfach an obigen entsprechenden Link das Package down und entpackt ihn in einem neuen Folder, der "sources" genannt und hier angelegt wird -Pfad zur SDK-/platforms/-Entsprechende Version-, der neue Folder könnte also so liegen:
Installiert man Eclipse nicht aus den Ubuntu-Repos scheinen manche Buttons in Galileo nicht anprechbar zu sein, Workaround ist den Launcher so zu ändern: "env GDK_NATIVE_WINDOWS=1 env /pfad/zu/eclipse"