{"id":119,"date":"2008-01-14T09:08:00","date_gmt":"2008-01-14T09:08:00","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=119"},"modified":"2018-03-09T20:02:03","modified_gmt":"2018-03-09T18:02:03","slug":"verzeichnisstrukturen-fur-java-projekte","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2008\/01\/verzeichnisstrukturen-fur-java-projekte\/","title":{"rendered":"Verzeichnisstrukturen f\u00fcr Java-Projekte"},"content":{"rendered":"<p>In den Java-Projekten haben sich unterschiedliche Verzeichnisstrukturen durchgesetzt. Je nach Komplexit\u00e4t ist eine einfache ausreichend oder eine starke Strukturierung gibt eine Vorgabe.<\/p>\n<p>Eine einfache Vorgabe ist, die Order mit dem Quellcode und den \u00fcbersetzten Klassendateien zu trennen. Die \u00fcblichen Ordnernamen f\u00fcr Java SE-Projekte sind src und bin. Entwicklungsumgebungen wie Eclipse \u00fcbersetzten Java-Typen aus dem src- in den bin-Ordner und kopieren Ressourcen wie Bilder und \u00dcbersetzungsdateien bei jedem Build ebenfalls in den bin-Ordner. Eclipse unterst\u00fctzte diesen Aufbau standardm\u00e4\u00dfig, wenn beim Dialog f\u00fcr ein neues Java-Projekt unter \u201eProject Layout\u201c die Option \u201eCreate separate folders vor source and class files\u201c aktiviert ist.<\/p>\n<p>Unter NetBeans ist die Standardstruktur etwas anders und eng mit dem Build-Tool Ant verbunden. Der Ordner src enth\u00e4lt die Standard-Klasen und Ressourcen, ein zweiter Ordner test die Test-Klassen und Ressourcen. Die \u00fcbersetzten Java-Klassen nimmt der Ordner build\/classes auf. Das Ergebnis des Builds, eine Jar-Datei im Fall eines einfachen Java-Projekts, steht im Ordner dist.<\/p>\n<p>Einen deutlichen Schritt weiter geht die Anregung vom Build-Manager Maven. Es schl\u00e4gt zwei Hauptordner src und target vor. Der src-Ordner enth\u00e4lt alle Quellen und Ressourcen und ein build \u00fcbersetzt das Projekt in den target-Ordner. Maven empfiehlt, den src-Ordner weiter nach Artefakten zu unterteilen: main (eigentliche Applikation oder Bibliothek), test (Testf\u00e4lle), demo (Beispiele). Unter diesen Artifakten-Ordnern folgenden weitere Unterordner. Der wichtigste Ordner ist f\u00fcr Java-Projekte java. Es kommen optional hinzu: ressources (f\u00fcr Ressourcen), config (Konfigurationsdaten), webapp (Dateien einer Web-Applikation). F\u00fcr den Ausgabeordner target wiederum sieht Maven die Unterteilung in classes (\u00fcbersetze Klassen aus src\/main\/java und Kopie aus src\/main\/resources), javadoc (Java-Doc von src\/main\/java), test-classes (Test-Klassen aus src\/test\/java und Kopie aus src\/test\/resources).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In den Java-Projekten haben sich unterschiedliche Verzeichnisstrukturen durchgesetzt. Je nach Komplexit\u00e4t ist eine einfache ausreichend oder eine starke Strukturierung gibt eine Vorgabe. Eine einfache Vorgabe ist, die Order mit dem Quellcode und den \u00fcbersetzten Klassendateien zu trennen. Die \u00fcblichen Ordnernamen f\u00fcr Java SE-Projekte sind src und bin. Entwicklungsumgebungen wie Eclipse \u00fcbersetzten Java-Typen aus dem src- [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[1],"tags":[],"class_list":["post-119","post","type-post","status-publish","format-standard","hentry","category-allgemein"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/119","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=119"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/119\/revisions"}],"predecessor-version":[{"id":4111,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/119\/revisions\/4111"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}