Hallo Zusammen,
es geht um den Aufbau meines gradle Projektes in Intellij IDEA Community.
Es werden mehr als 20 Module werden.
Den Quellcode will ich in folgender Struktur aufbauen:
Benennung der Pakete
[CODE lang="java" title="Package Naming" highlight="6"]com.example.app.<project-codename>.* = Application code
com.example.lib.<project-codename>.* = Library code
com.example.mod.<project-codename>.* = Modules (More than a lib but less than an app)
z.B.
package com.example.app.webserver;[/CODE]
Aktuelle Dateistruktur
[CODE lang="java" title="Physikalische Struktur"]./project-root/ = main root folder
./project-root/lib/<project-name>/ = gradle root
./project-root/lib/<project-name>/src/java/main/ = src root
./project-root/lib/<project-name>/src/java/main/com/example/lib/<project-name>/ExampleClass.java = minimale Klasse im Quellcode[/CODE]
Gradle-Objekte
[CODE lang="java" title="gradle roots"]./project-root/lib/<project-name>/src/java/main/com/example/app/<project-name>/ = gradle root mit settings.gradle
./project-root/lib/<project-name>/src/java/main/com/example/lib/<project-name>/ = gradle root mit settings.gradle
z.B.
./project-root/lib/<project-name>/src/java/main/com/example/app/webserver/ = gradle root mit settings.gradle
./project-root/lib/<project-name>/src/java/main/com/example/lib/db/ = gradle root mit settings.gradle[/CODE]
Notwendiger Import durch gradle in Package com.example.app.webserver:
[CODE lang="java" title="build.gradle" highlight="2-3"]dependencies {
implementation files('..\\..\\..\\..\\lib\\db\\')
implementation files('..\\..\\..\\..\\lib\\db\\build\\classes\\java\\main')
...
}[/CODE]
Aktuelle gradle Dateien:
[CODE lang="bash" title="Dateien"]./build.gradle
./settings.gradle
./app/webserver/build.gradle
./app/webserver/settings.gradle
./lib/db/build.gradle
./lib/db/settings.gradle[/CODE]
Probleme:
Meine Frage:
Gerne auch Rückmeldung zur Verbesserung dieser Diskussion oder Frage.
Leider ist es sehr viel Text geworden, ich weiß aber auch nicht, was ich weg lassen kann und dennoch die wichtigen Angaben zu machen.
Ich freue mich auf eure Ideen und bedanke mich schon einmal ganz herzlich.
Viele Grüße
Georg
es geht um den Aufbau meines gradle Projektes in Intellij IDEA Community.
Es werden mehr als 20 Module werden.
Den Quellcode will ich in folgender Struktur aufbauen:
Benennung der Pakete
[CODE lang="java" title="Package Naming" highlight="6"]com.example.app.<project-codename>.* = Application code
com.example.lib.<project-codename>.* = Library code
com.example.mod.<project-codename>.* = Modules (More than a lib but less than an app)
z.B.
package com.example.app.webserver;[/CODE]
Aktuelle Dateistruktur
[CODE lang="java" title="Physikalische Struktur"]./project-root/ = main root folder
./project-root/lib/<project-name>/ = gradle root
./project-root/lib/<project-name>/src/java/main/ = src root
./project-root/lib/<project-name>/src/java/main/com/example/lib/<project-name>/ExampleClass.java = minimale Klasse im Quellcode[/CODE]
Gradle-Objekte
[CODE lang="java" title="gradle roots"]./project-root/lib/<project-name>/src/java/main/com/example/app/<project-name>/ = gradle root mit settings.gradle
./project-root/lib/<project-name>/src/java/main/com/example/lib/<project-name>/ = gradle root mit settings.gradle
z.B.
./project-root/lib/<project-name>/src/java/main/com/example/app/webserver/ = gradle root mit settings.gradle
./project-root/lib/<project-name>/src/java/main/com/example/lib/db/ = gradle root mit settings.gradle[/CODE]
Notwendiger Import durch gradle in Package com.example.app.webserver:
[CODE lang="java" title="build.gradle" highlight="2-3"]dependencies {
implementation files('..\\..\\..\\..\\lib\\db\\')
implementation files('..\\..\\..\\..\\lib\\db\\build\\classes\\java\\main')
...
}[/CODE]
Aktuelle gradle Dateien:
[CODE lang="bash" title="Dateien"]./build.gradle
./settings.gradle
./app/webserver/build.gradle
./app/webserver/settings.gradle
./lib/db/build.gradle
./lib/db/settings.gradle[/CODE]
Probleme:
- Die Module müssen in IDEA händisch eingefügt werden, automatisch wird dies nicht erkannt.
- ./settings.gradle ist notwendig, damit IDEA den root-Ordner anzeigt.
- Extrem viele Ordner
-
Java:
Durch die Struktur: ./app/webserver/src/java/main/ Durch Java: com/example/app/webserver/ ./app/webserver/src/java/main/com/example/app/webserver/
-
- Erstellung der Module per Hand da IDEA nur ein einziges Modul als parent anbietet
Meine Frage:
- Bzgl. build.gradle: Wie importiere ich die Module richtig, oben genanntes mit files(...) ist nur ein Workaround. IDEA baut das Modul auch nicht, wenn sich Änderungen ergeben haben.
- Bzgl. Module in IDEA: Welche Ordner sollten Module (z.B. auch app oder lib?) sein, wie erstelle ich neue, andere Tipps für IDEA / gradle in diesem Zusammenhang?
- Bzgl. Struktur: Ideen zur Struktur? Leider will ich als Package-Name einen FQDN.
Gerne auch Rückmeldung zur Verbesserung dieser Diskussion oder Frage.
Leider ist es sehr viel Text geworden, ich weiß aber auch nicht, was ich weg lassen kann und dennoch die wichtigen Angaben zu machen.
Ich freue mich auf eure Ideen und bedanke mich schon einmal ganz herzlich.
Viele Grüße
Georg