Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
build.xml + eclipse nachträgliche Intergration wie am Besten?
Was ist denn der Standardweg um ein bereits vorhandenes Projekt mit eigenem Ant build.xml
nachträglich in Eclipse einzubinden?
Ich habe versucht mit
New -> Project... -> Java Project from exsiting Ant Build File
das Projekt zu importieren. Das hat auch zuerst sehr gut geklappt. Aaaaber dann:
Wenn ich das Projekt kompilieren möchte, beschwert sich Ant, dass es meine Sourcen nicht finden
kann.
Als ich dann nachgeschaut habe, stelle ich fest, dass Eclipse das build.xml in das workspace-
Verzeichnis umkopiert hat. Ok, das ist dann natürlich klar, dass Ant nichts findet, den meine Sourcen
liegen ja außerhalb, des workspace. Wie bringe ich E bei nur das original build.xml zu benutzen, denn
dann stimmen auch wieder alle Pfade.
Ich möchte das Projekt ganz unabhängig von der IDE haben, deswegen soll der workspace von E
getrennt sein von dem src Baum. Das build.xml zähle ich mal zum den Sourcen dazu.
Jetzt ist die Frage, kann E damit umgehen und damit leben, dass Sourcen und build.xml _nicht_
im workspace enthalten sind? Oder braucht E all das unbedingt im workspace.
Anmerkung: Ich stelle mir aber der Fall vor, dass der workspace beim Start von E vielleicht mal Probleme
machen könnte und deshalb neu aufgesetzt werden müsste. Dann hätte ich den Salat, dass mein Projekt
mit dem workspace verbunden sind. Ausserdem müsste mit CVS/SVN immer aufpassen, dass ich keine
workspace-eigenen Dateien mit einchecke.
Anmerkung: Ich stelle mir aber der Fall vor, dass der workspace beim Start von E vielleicht mal Probleme
machen könnte und deshalb neu aufgesetzt werden müsste. Dann hätte ich den Salat, dass mein Projekt
mit dem workspace verbunden sind. Ausserdem müsste mit CVS/SVN immer aufpassen, dass ich keine
workspace-eigenen Dateien mit einchecke.
Was ist das denn für eine Begründung? Nur weil ein Projekt in einem Eclipse Workspace liegt ist es doch nicht von Eclipse abhängig.
Wenn du die Eclipse metadaten (.project, .classpath,...) nicht einchecken willst, dann benutz .cvsignore, .svnignore, oder einfach Maven.
.project und .classpath (die beiden wichtigsten Dateien für Eclipse Java Projekte) gibt es als "templates" und sind im svn eingecheckt. (allerdings dann in einem Ordner und mit anderem Namen).
Der Aufruf des ANT Targets "eclipse" kopiert die beiden Dateien in das Projekt root (hier sind sie per svn:ignore ignoriert).
Anschließend kann man in Eclipse über "Import" -> "Existing Eclipse Procekt" das Projekt in den Workspace importieren (und solange man den Haken "Copy to workspace" nicht anklickt, bleibt das Projekt komplett außerhalb des Workspaces.
.project und .classpath (die beiden wichtigsten Dateien für Eclipse Java Projekte) gibt es als "templates" und sind im svn eingecheckt. (allerdings dann in einem Ordner und mit anderem Namen).
Der Aufruf des ANT Targets "eclipse" kopiert die beiden Dateien in das Projekt root (hier sind sie per svn:ignore ignoriert).
Was ist das denn für eine Begründung? Nur weil ein Projekt in einem Eclipse Workspace liegt ist es doch nicht von Eclipse abhängig.
Wenn du die Eclipse metadaten (.project, .classpath,...) nicht einchecken willst, dann benutz .cvsignore, .svnignore, oder einfach Maven.
Sorry, dass dieser Kommentar gerade Dich trifft. Vielleicht ist das auch eine Mentalitätsfrage, aber ich
finde die ziemlich barsche Art in deutschen Foren echt gewöhnungsbedürftig. In Englisch würde man
sagen you may want to re-think... o-Ä. jedenfalls spürt man immer eine gewisse Höflichkeit. Was ist
das denn für eine Begründung? würde da wirklich aus dem Rahmen fallen und sehr plump wirken
(vorsichtig ausgedrückt) Ok das nur als Randnotiz.
Was Du vorschlägst geht natürlich auch, nur muss man immer sehr genau wissen, was in die .xxxignore
reingehört und was nicht.
Also wenn es eine wirklich elegante und "saubere" Trennung von IDE und project geben würde,
dann wäre mir das lieber.
Nachtrag: Es ist schon länger her, dass ich was mit E zu tun hatte. Aber ich kann mich daran erinnern,
dass der workspace öftermal zerschossen wurde, und es immer ein gutes Gefühl war, zu wissen,
dass die Sourcen nicht im workspace lagen. Man kann nat. trotzdem für die wichtigen Konfigdateien
von E im Repo einen eigenen Bereich haben. Aber die sind dann eben nicht mehr Teil des eigentlichen
Projekts und müssen deshalb auch nicht großartig berücksichtigt werden, separation of concerns so to
speak.
.project und .classpath (die beiden wichtigsten Dateien für Eclipse Java Projekte) gibt es als "templates" und sind im svn eingecheckt. (allerdings dann in einem Ordner und mit anderem Namen).
Der Aufruf des ANT Targets "eclipse" kopiert die beiden Dateien in das Projekt root (hier sind sie per svn:ignore ignoriert).
Anschließend kann man in Eclipse über "Import" -> "Existing Eclipse Procekt" das Projekt in den Workspace importieren (und solange man den Haken "Copy to workspace" nicht anklickt, bleibt das Projekt komplett außerhalb des Workspaces.
Aber könnt ihr dann zum Bauen das _selbe_ build.xml benutzen ? Sorry, ich hab das noch nicht ganz
verstanden.
Edit: Wegen "solange man den Haken "Copy to workspace.."
das hat mich ja gerade auch gewundert, dass wirklich nur das build.xml kopiert wurde. In dem
build.xml stehen natürlich relative Pfade zu den Sourcen, und wenn es jetzt aber in das workspace
Verzeichnis zwangsumgesiedelt wird, findet das arme build.xml natürlich keine Sourcen mehr.
Tja, ich hab das auch nicht beschlossen und auf der Arbeit herrscht gegenüber IDEs eine gewisse Skepsis wenn es um eine Gesamtintegration geht. Bevor ich dort angefangen habe, waren IDE Dateien gar nicht eingecheckt, so ist es immerhin schon eine Verbesserung.
Den einzigen Vorteil den ich atm sehe ist, dass man z.B. den Projektnamen in der .project Individuell für sich ändern kann, ohne das dann aus versehen zu comnitten. Ich persönlich würde sowieso Maven bevorzugen.
@dmike: Naja, ANT nutze ich dann doch nicht aus Eclipse heraus sondern nach wie vor über die Kommandozeile, aber wenn du eben das gesamt Projekt inklusive Sourcen importierst, dann gilt für ANT das Basedir aus der Sandbox und da müssten relative Pfade doch passen (Evtl. im ant <project> das basedir auf "." setzen).
Und im .classpath muss man die Pfade afaik auch nicht Absolut angeben sondern, die gehen von der .classpath relativ ab, so dass das für verschiedene Entwickler auch kein Problem darstellt.
Dann nimm Maven wie vorgeschlagen, hat aber auch eine Lernkurve.
Ansonsten lass dir gesagt sein dass Wildcard einer der höflichsten Leute ist (Mods & User eingeschlossen) die hier schreiben
Kann deine Aussage schon nachvollziehen, leider trifft es mit Wildcard den absolut falschen.
Zurück zum Thema, mit Maven bist du IDE unabhängig, ob Eclipse, Netbeans, IDEA oder einfach nur per Kommandozeile, wenn du Maven verwendest, brauchst du auch keine IDE spezifischen Dateien einzuchecken und der Build geht immer (wenn Maven und das Projekt richtig konfiguriert sind).
Ich kann mich nur daran erinnern, dass ich damals das build.xml von Eclipse aus aufgerufen habe. Aber
das build.xml lag genau so wenig im workspace, wie die Sourcen selbst. Das weiß ich noch weil ich
den workspace ohne Probleme für das Projekt öfter mal mit rm -rf gelöscht habe.
Also entweder habe ich eine falsche Erinnerung oder verwechsel da irgendwas, oder ich habe das
Projekt damals wirklich anders import und anders aufgesetzt :bahnhof: Naja ich lass das Thema
erst mal in Ruhe, vielleicht klärt sich die Verwirrung in meinem Kopf schon von alleine auf..