IDEA IntelliJ Projekt - Module - und nun?

temi

Top Contributor
Ich versuche gerade mit IntelliJ etwas "professioneller" zu werden und möchte ein Projekt auf mehrere Unterprojekte aufteilen. In der Sprache von IntelliJ: Ein Projekt und mehrere Module. Dazu habe ich
  1. Neues leeres Projekt
  2. Neues Modul1
  3. Neues Modul2
Soweit so gut. Ich habe jetzt ein Projekt mit zwei Modulen (siehe Projekt.png)
Wenn ich jetzt die Projektstruktur öffne, finde ich vier Einträge (siehe Projektstruktur.png)
Was bedeuten diese vier Einträge?
Wie kann ich erreichen, dass ich im Modul2 Klassen von Modul1 importieren kann?

Danke,
temi
 

Anhänge

  • Projekt.png
    Projekt.png
    42,8 KB · Aufrufe: 159
  • Projektstruktur.png
    Projektstruktur.png
    9,3 KB · Aufrufe: 156

mrBrown

Super-Moderator
Mitarbeiter
Afaik erstellt Intellij, wenn man gradle nutzt, für main und test noch mal einzelne Module. Das Projekt besteht dann aus den beiden gradle-Modulen und jeweils deren beiden Unter-Modulen.

Wenn du gradle nutzt, würde ich den ganzen Setup direkt über gradle machen. Dort kannst du dann das andere Projekt als Dependency angeben.
Ich weiß nicht, ob IntelliJ die build-files passend einrichtet, wenn man das nur über IntelliJ macht.
 

temi

Top Contributor
Wenn du gradle nutzt, würde ich den ganzen Setup direkt über gradle machen
So würde ich das nicht ganz bezeichnen ;)
Ich nutze gradle, um externe Abhängigkeiten einzubinden, aber ich fürchte, damit bleibe ich weit hinter den Möglichkeiten zurück.

Ich habe leider festgestellt, dass es für einen Hobbyprogrammierer nicht leicht ist Informationen zu finden, wie Softwareentwicklung halbwegs "professionell" gemanagt wird. Es gibt tausend Bücher über das Programmieren an sich, aber wie diverse Entwicklungstools auch für Laien korrekt im Zusammenspiel eingesetzt werden können, dazu finde ich nichts ordentliches.
Geht jetzt am eigentlichen Thema leicht vorbei (naja, eigentlich auch nicht), aber falls jemand eine gute Schritt-für-Schritt-Anleitung dazu hat, dann immer her damit :)

Ich habe inzwischen herausgefunden wie es über IntelliJ funktioniert: Über "Project structure" können für die einzelnen Module Dependencies hinzugefügt werden.
Ich weiß nicht, ob IntelliJ die build-files passend einrichtet, wenn man das nur über IntelliJ macht.
Scheint nicht so, ich habe wie beschrieben Abhängigkeiten hinzugefügt (IntelliJ) aber in den einzelnen "build.gradle"-Dateien taucht nichts davon auf.

Außerdem sind die im obigen Bild "Projektstruktur" angezeigten Knoten mit den vier kleinen blauen Quadraten anscheinend "Modulgruppen".

Wie kann man diese Gruppen sinnvoll einsetzen?
 

mrBrown

Super-Moderator
Mitarbeiter
Ich habe leider festgestellt, dass es für einen Hobbyprogrammierer nicht leicht ist Informationen zu finden, wie Softwareentwicklung halbwegs "professionell" gemanagt wird. Es gibt tausend Bücher über das Programmieren an sich, aber wie diverse Entwicklungstools auch für Laien korrekt im Zusammenspiel eingesetzt werden können, dazu finde ich nichts ordentliches.
Geht jetzt am eigentlichen Thema leicht vorbei (naja, eigentlich auch nicht), aber falls jemand eine gute Schritt-für-Schritt-Anleitung dazu hat, dann immer her damit :)
Gefühlt machen die meisten "professionellen" das aber auch nicht wirklich professionell :D

Das Gradle-Tut dazu ist eigentlich ganz gut: https://guides.gradle.org/creating-multi-project-builds/
(man muss halt das nicht passende weglassen, zB den Groovy-Part)

Ich habe inzwischen herausgefunden wie es über IntelliJ funktioniert: Über "Project structure" können für die einzelnen Module Dependencies hinzugefügt werden.
Scheint nicht so, ich habe wie beschrieben Abhängigkeiten hinzugefügt (IntelliJ) aber in den einzelnen "build.gradle"-Dateien taucht nichts davon auf.

Außerdem sind die im obigen Bild "Projektstruktur" angezeigten Knoten mit den vier kleinen blauen Quadraten anscheinend "Modulgruppen".

Wie kann man diese Gruppen sinnvoll einsetzen?
Den Teil ignorier ich immer, da kann ich dir kaum weiterhelfen...
Ich manage das über Maven/Gradle direkt und importier es dann einfach. Der Vorteil von dem Build-Tool ist ja auch die IDE-Unabhängigkeit.
 

Thallius

Top Contributor
Gefühlt machen die meisten "professionellen" das aber auch nicht wirklich professionell :D

Das könnte daran liegen, dass irgendwelchen theoretischen Informatiker ungefähr vierteljährig neu definieren was ihrer Meinung nach professionell ist. Wenn man immer die aktuellen angeblichen professionellen Wege gehen würde, dann könnte man keine Software mehr fertig stellen da man innerhalb der eigentlichen Entwicklungszeit sein komplettes Entwicklungskonzept 3x umstellen müsste..

Professionell ist, nicht immer dem neusten Kram hinterherzulaufen sondern für ein vernünftiges Budget dem Kunden eine gute Lösung zu bieten egal mit welchen Mitteln oder auf welchem Weg....

Gruß

Claus
 

mrBrown

Super-Moderator
Mitarbeiter
Gradle und Maven sind beide älter als 10 Jahre, Jenkins als eine der verbreitetsten CI-Lösung ist 7, TDD ist etwa 20...wirklich neu ist davon nichts...

Keine Ahnung was daran „neuster Kram“ ist.

Unsere Meinungen gehen aber auch offensichtlich deutlich auseinander, was eine „gute Lösung“ ist.

(Wenn man den Build-Prozess von theoretischen Informatikern bestimmen lässt, ist allerdings klar, dass das nicht unbedingt gut wird...)
 

temi

Top Contributor
Wie würde man ein Projekt sinnvoll aufteilen?

Ich plane gerade eine kleine Desktopanwendung, die ihre Daten in einer Datenbank verwaltet. Da ich hier unter Linux programmiere, würde ich für die Entwicklung erst mal auf H2 als Datenbank setzen, mit der Option später auf einen SQL Server wechseln zu können.

Ich würde jetzt schon mal auf jeden Fall zwei Module sehen, da in der produktiven Anwendung nur eines davon z.B. als jar benötigt werden wird:
- data_H2
- data_MSSQL

Desweiteren würde ich die GUI (JAVAFX) in einem separaten Projekt sehen:
- gui

Da die GUI auf austauschbaren Datenquellen arbeiten soll, außerdem noch eine API, die nur Interfaces für die DTOs, Repositories usw. enthält und von der GUI refereziert wird.
- domain_api

Jetzt fehlt noch die Implementierung zumindest eines Teils der API, z.B. ein AbstractRepository und DTOs die wiederum von den konkreten Datenzugriffsmodulen referenziert werden. Sollte das auch als separates Modul modelliert werden oder einfach als zusätzliches Package neben der domain_api?

Da es sich nur um eine recht einfache Lagerverwaltung (Materialstamm, Einbuchen, Ausbuchen, Bestandslisten) handelt, werde ich wohl keine zusätzliche Schicht zwischen Repositories und der GUI benötigen, oder? Die "Geschäftslogik" wäre demnach im GUI-Modul in den Controllern.

Ist das ungefähr in Ordnung so?
 

mrBrown

Super-Moderator
Mitarbeiter
Ich würde aus "domain_api" das api streichen und "domain" draus machen, und da denn eben alle Dinge, die zur Domäne gehören, rein - wo sowohl Geschäftslogik, Domänen-Objekte als auch Repository(-Interfaces) zu gehören.

gui ist dann MVC-Konform wirklich nur die GUI mit View und Controllern, aber ohne Geschäftslogik.

Und data_* sind nur die Datenbank-relevanten Implementationen von Repositorys, DAOs etc.
 

temi

Top Contributor
Ein erstes Feedback für alle, die es möglicherweise interessiert. Ich habe jetzt folgendes gemacht:
  1. IntelliJ => Create new project
  2. Im nächsten Fenster "Additional Libraries and Frameworks" alles abwählen.
  3. In den nächsten Fenstern GroupId, ArtifactId und ProjectName festlegen.
  4. Damit erhält man ein relativ leeres Projekt mit einer "build.gradle" und einer "settings.gradle".
  5. Rechtsklick auf das Toplevel-Element (= Projektname) => New => Module
  6. Im Fenster "Additional Libraries..." diesmal z.B. "Java" auswählen.
  7. ArtifactId und ModuleName festlegen.
  8. Damit wurde ein Modul mit dem gewünschten Namen und einer separaten "build.gradle" angelegt und in der "settings.gradle" wurde ein entsprechender "import" eingefügt.
  9. Punkte ab (5) wiederholen, bis alle Module angelegt sind.
  10. Die einzelnen "build.gradle" nach Wunsch editieren.
 

temi

Top Contributor
Ist das folgende korrekt, wenn ich möchte, dass alle Unterprojekte (= Module) dieselbe sourceCompatibility, repositories und dependencies (zumindest teilweise) haben sollen?

Die Versionsnummer möchte ich für einzelne Module unabhängig haben und für den Rest einheitlich. Wie konfiguriere ich das?

Ist es möglich für einzelne Module zusätzliche dependencies einzufügen? Einfach in die entsprechende build.gradle schreiben?

Code:
group 'de.kagu'
//version '1.0-SNAPSHOT'

subprojects {

    sourceCompatibility = 1.8

    repositories {
        mavenCentral()
    }

    dependencies {
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }
}

EDIT: Hab es grade probiert, aber ich erhalte diverse Fehlermeldungen, wenn ich es so mache. Ich habe jetzt "repositories" und "dependencies" wieder in den einzelnen build-Dateien eingefügt.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Eclipse - Fehlermeldung bei JavaFX-Projekt "java.lang.module.FindException: Module javafx.controls not found" IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 23
T Eclipse Java Projekt funktioniert in Eclipse, aber nach export kein Dateizugriff IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
MiMa IntelliJ Projekt umbenennen?? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
A Eclipse Projekt-Umzug mit Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
MiMa IntelliJ Maven Projekt erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
M Altes Java Projekt in Netbeans importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
T GlassFish mit Eclipse, Dynamic Web Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
O NetBeans Java Projekt OHNE Maven erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
O NetBeans Java Projekt OHNE Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
D IDEA IntelliJ Projekt Struktur durch Submodules realisieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
krgewb IDEA IntelliJ Projekt plötzlich gelb und schreibgeschützt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
D Intellij mehrere Programme in einem Projekt bearbeiten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
N Eclipse debug Gradle-Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
O NetBeans Netbeans 12.0 - Hintergrundfarbe, auch im Navigator und Projekt umstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
P Intellij "httpRequest" ins Projekt mit einbinden? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 49
T Eclipse: Projekt aus meinem Workspace als Library auswählen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
J NetBeans Projekt erstellen nicht möglich IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
M Eclipse JavaFX JDK 12 - bekomme mein Projekt nicht mehr compiliert IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 36
J Install JasperReports on netbeans/gradle Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
J NetBeans gradle Projekt, unter neu keine Auswahl JavaFX IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
L Eclipse LibGDX Projekt importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
B IDEA IntelliJ Import Gradle: Plötzlich Android Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
H Eclipse Konsole gibt falsches Java Projekt aus IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
B IDEA IntelliJ Gradle Projekt debuggen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
J Eclipse Ausrufezeichen vor Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
D NetBeans Änderung im laufenden Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
R Projekt auf VirtualBox IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
F GIT Projekt importiert ... wie kann das Ding in Jars gewndelt werden ? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
L Eclipse Eclipse - Projekte "mischen" Dynamisches Web Projekt + Maven IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
D NetBeans Maven Projekt in Netbeans => WEKA wirft (java.lang.OutOfMemoryError: Java heap space) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
J Eclipse Projekt als auführbares Dateisystem exportieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
A Eclipse/Android: Projekt -> .apk IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
M MS SQL Management Studio - Export der Projekt-Datei IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
M Eclipse Projekt zu GitHub Repository hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
M NetBeans Dateipfad vom Projekt anzeigen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
Maxim6394 Eclipse zeigt Fehler in Projekt und kompiliert nicht IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
J Ist Egid das richtige um im Team an einem Projekt zu arbeiten? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
H Eclipse + ADK installation - Kein Android Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
T Eclipse Java-Klassen aus dem einen in ein anderes Projekt einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
G SVN Projekt umändern IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
P Eclipse Lib wird in einem bestimmten Projekt nicht erkannt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
C NetBeans Libaries im projekt einbinden?! IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S Eclipse: JUnit bei jedem Projekt automatisch hinzufügen lassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
D Eclipse Eclipse Fehler im Projekt (nicht im Source) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
propra Mit mehreren Rechner an einem Projekt arbeiten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 24
T Neues Projekt automatisch in bestimmten repository IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
darekkay Eclipse Dateien temporär aus dem Projekt entfernen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
H Projekt-Einstellungen von Eclipse mit subversion verwalten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
Gregorrr Eclipse Best Practice: Multi-Projekt mit Eclipse + EGit (Git) + m2e (Maven) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 9
D Eclipse Projekt kompilieren und Paket erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
T Eclipse Wo sollte ich Bibliotheken für mein Projekt unterbringen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 13
R Eclipse gnu projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
O NetBeans Projekt findet kein Ende mehr(nicht endbar) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
D Eclipse Projekt exportieren , aber bestimmte Verzeichnisse auslassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
firefexx Kleines Java Projekt - Versionsverwaltung IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
J Eclipse Checkout/Import Maven Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
G NetBeans Anderes Projekt auf Run-Button setzen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
F Projekt ist weg (Eclipse -> ICQ) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 10
N Eclipse Alle Methoden und Klassen eines Projekt in Tabelle exportieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
D Eclipse Wie ein NetBeans-Projekt automatisch in Eclipse importieren? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
ruutaiokwu eclipse zeigt nur noch das eine projekt an... IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
T Eclipse Jython-Lib in Java-Projekt einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M Eclipse Projekt in mehrere Projekte aufspalten RMI IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
S Eclipse Klassen werden nicht mehr compiliert - Projekt zerstört? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
N Eclipse bestehendes Projekt in Eclipse einfügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
J Eclipse Projekt korrekt strukturiert importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
S NetBeans class, jar, package. Wie am besten machen bei Applet mit Web-Projekt? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
G Eclipse Projekt Set IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
Y Eclipse Neues Projekt - falsches JRE IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
J NetBeans Java Projekt konvertieren -> *.exe IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
S NetBeans Ressourcen in Projekt verwenden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
N NetBeans Bilder ins Projekt importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
FoolMoon Eclipse Projekt mit PW versehen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
T Eclipse - Einbinden von dlls in Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
L Eclipse-Projekt aus SVN so auschecken, daß Junit funktioniert IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
T Eclipse+SVN, J2EE-Projekt, Checkout IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 17
N jar aus projekt machen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
S Netbeans Projekt nach Eclipse migrieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
B komplettes projekt in eclipse wieder öffnen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
T Subversive erkennt Projekt nicht mehr nach Import via Ant IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 14
G Eclipse - Projekt verschieben IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
K alle beispiele in einem projekt importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
D Projekt ohne Komplikationen in Eclipse importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
O Suche ne Eclipse Version für ein Java Web Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
G Neues Seam Projekt mit Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
C Java-Projekt in Eclipse importieren/exportieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
B Eclipse - Projekt von Windows nach Linux IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
J Eclipse WTP: Web Projekt - mysql einbindung nicht moeglich IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
N jar datei ins projekt hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
R Eclipse: wie Bilder zum Projekt hinzufügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 13
N Anzahl Codezeilen aller Klassen in einem Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
J Eclipse: Jar Library -> Web Projekt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
G Eclipse-Projekt, inkl. externe jars und Bilderordner zu jar? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
E Eclipse 3.3 JEE- kann kein J2EE Projekt erstellen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
A kstemmer java Dateien in eigenes Netbeans Projekt einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
Z An einem Projekt mit mehreren Leuten arbeiten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
M Eclipse: JAR-Archive vom Projekt erzeugen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
S Projekt-VCS im Jbuilder 2006 wechseln IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
J Spring in Eclipse-Projekt einbinden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
F Eclipse: SWT Projekt in JAR packen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7

Ähnliche Java Themen

Neue Themen


Oben