JeKa ist ein modernes Java-Build-Tool, das auf Einfachheit ausgerichtet ist.
Wenn Entwickler mit Java beginnen, schreiben sie normalerweise einfach Code, kompilieren ihn und führen ihn aus. Dies reicht jedoch nicht aus, um nützliche Java-Anwendungen oder -Bibliotheken zu erstellen, die andere wiederverwenden können. Um etwas Praktisches in Java zu erstellen, müssen wir:
Dies geschieht oft mit traditionellen Build-Tools wie Maven oder Gradle. Diese Tools erfordern umfangreiches Lernen und können eine langwierige Konfiguration erfordern.
Eine einfachere Alternative ist JBang, mit der Sie Java-Apps mit fast nur einer Datei schreiben und diese problemlos teilen können.
Auf der anderen Seite bietet Jeka eine einfache Abhängigkeitsverwaltung und -bereitstellung à la JBang und ermöglicht Ihnen gleichzeitig die Erstellung von Standardanwendungen oder Bibliotheken mit mehreren Klassen, einschließlich der entsprechenden Tests.
Voraussetzung:Jeka muss installiert sein.
Tipp: Um die verfügbaren Optionen aufzulisten, führen Sie Folgendes aus: jeka base: --doc.
Um eine Basisstruktur zu erstellen, die sofort mit dem Codieren beginnen kann, führen Sie Folgendes aus:
jeka base: scaffold scaffold.kind=APP
Sie erhalten die folgende Projektstruktur:
. ├── jeka-src <- Source root directory │ ├── _dev <- Optional package containing all non-prod (build and test) │ │ ├── test │ │ └── Build.java │ └── app <- Sugested base package for production code/resources │ └── App.java ├── jeka-output <- Generated dir where artifacts as jars, classes, reports or doc are generated ├── jeka.properties <- Build configuration (Java and jeka version, kben configurations, ...) └── README.md <- Describes available build commands
Ihr gesamter Java-Code sollte sich im Ordner jeka-src befinden.
_dev ist ein spezielles Paket für Quellcode und Abhängigkeiten, das nur für die Entwicklung (z. B. Tests, Builds) verwendet wird. Wenn Sie neu bei Java sind, können Sie es ignorieren oder löschen.
Das Gerüstbeispiel enthält eine App-Klasse im app-Paket. Sie können Klassen in jedem beliebigen Paket hinzufügen oder ändern.
Um mit IntelliJ zu synchronisieren, führen Sie Folgendes aus:
jeka intellij: iml --force
Wenn Änderungen nicht in IntelliJ angezeigt werden, gehen Sie zum Stammverzeichnis des Projekts und führen Sie Folgendes aus: jeka intellij: initProject.
Die Klasse App.java deklariert eine @JkDep-Annotation, um auf eine Bibliothek zu verweisen. Sie können beliebig viele Bibliotheken hinzufügen. Eine gute Vorgehensweise besteht darin, alle Bibliotheken in derselben Basisklasse zu deklarieren.
@JkDep("com.github.lalyos:jfiglet:0.8.9") @JkDep("com.fasterxml.jackson:jackson-bom::pom:2.18.2") @JkDep("com.fasterxml.jackson.core:jackson-core") @JkDep("com.fasterxml.jackson.core:jackson-annotations") public class App { public static void main(String[] args) { ... } }
Siehe Details zu Abhängigkeitsnotationen.
Darüber hinaus können Sie JAR-Dateien kopieren und in das folgende Verzeichnis einfügen, um sie automatisch als Abhängigkeiten einzuschließen:
├── jeka-boot <- Jars included in the production classpath.
Nicht-Produktabhängigkeiten deklarieren
Deklarieren Sie die Abhängigkeit von jeder Klasse im _dev-Paket, um die Abhängigkeit durch die Einbettung in die Produktion hinzuzufügen.
package _dev; @JkDep("org.junit.jupiter:junit-jupiter:5.11.4") @JkDep("org.mockito:mockito-junit-jupiter:5.15.2") class Build extends KBean { ... }
Erinnerung: Vergessen Sie nicht, jeka intellij: iml auszuführen, sobald Sie die Abhängigkeiten geändert haben.
Die Anwendung kann ausgeführt werden mit:
jeka base: scaffold scaffold.kind=APP
Um die Kompilierung vor dem Start zu bereinigen, verwenden Sie die Option --clean (kurz -c).
Wenn dieser Quellcode in einem Git-Repository gehostet wird, kann die Anwendung direkt ausgeführt werden, indem das Repository folgendermaßen referenziert wird:
. ├── jeka-src <- Source root directory │ ├── _dev <- Optional package containing all non-prod (build and test) │ │ ├── test │ │ └── Build.java │ └── app <- Sugested base package for production code/resources │ └── App.java ├── jeka-output <- Generated dir where artifacts as jars, classes, reports or doc are generated ├── jeka.properties <- Build configuration (Java and jeka version, kben configurations, ...) └── README.md <- Describes available build commands
Wenn Sie anstelle einer Anwendung eine Bibliothek schreiben möchten, müssen Sie sowohl moduleId als auch die Versionierung deklarieren, um sie in einem Maven-Repository zu veröffentlichen:
jeka intellij: iml --force
Jetzt können Sie Ihre Bibliothek veröffentlichen, indem Sie Folgendes ausführen:
@JkDep("com.github.lalyos:jfiglet:0.8.9") @JkDep("com.fasterxml.jackson:jackson-bom::pom:2.18.2") @JkDep("com.fasterxml.jackson.core:jackson-core") @JkDep("com.fasterxml.jackson.core:jackson-annotations") public class App { public static void main(String[] args) { ... } }
Der Gerüstcode enthält bereits eine _dev.test.MyTest-Testklasse, die zur Ausführung bereit ist.
├── jeka-boot <- Jars included in the production classpath.
Sie können in jedem beliebigen Paket weitere Tests hinzufügen. Beachten Sie jedoch, dass Testklassen, die sich nicht im _dev-Paket (oder seinen Unterpaketen) befinden, als toter Code in die Produktions-JAR aufgenommen werden.
Heutzutage entwickelt sich Java rasant weiter, mit neuen Releases alle sechs Monate. JeKa bietet eine sehr bequeme Möglichkeit, zwischen Java-Versionen zu wechseln. Geben Sie einfach die Version in der Datei jeka.properties an:
package _dev; @JkDep("org.junit.jupiter:junit-jupiter:5.11.4") @JkDep("org.mockito:mockito-junit-jupiter:5.15.2") class Build extends KBean { ... }
Dadurch wird JDK 23 automatisch beim nächsten Kompilieren oder Ausführen der Anwendung installiert.
Jeka stellt unter anderem die folgenden Befehle zur Verfügung:
jeka --program arg0 args1 ... # or `jeka -p` for short
Andere Befehle:
jeka --remote [git repo url] --program arg0 arg1 ... # or jeka -r [git repo url] -p
Da die Codebasis wächst, wird es für Sie möglicherweise komfortabler sein, eine vollständige Projektstruktur zu verwenden.
Der Wechsel zu einem Projekt ist einfach. Um herauszufinden, wie das geht, besuchen Sie das Build Projects Tutorial.
Sie können auch Kotlin-Code in die Codebasis schreiben. Geben Sie einfach die Kotlin-Version an, die Sie in der Datei jeka.properties verwenden möchten:
@base.moduleId=org.example:my-lib @base.version=1.0.0-SNAPSHOT
Jetzt können Sie den Kotlin-Code wie unten gezeigt bearbeiten, ihn nahtlos in den vorhandenen Java-Code in Ihrer Codebasis integrieren oder sogar eine 100 % Kotlin-Anwendung erstellen:
jeka maven: publish
Jeka bietet einen praktischen Modus, um mit dem Schreiben realer Java-Anwendungen zu beginnen, ohne die Last herkömmlicher Build-Tools.
Seine polymorphe Struktur ermöglicht den schrittweisen Umgang mit zunehmender Komplexität und Größe, ohne auf Einfachheit zu verzichten.
Ressourcen:
Das obige ist der detaillierte Inhalt vonJeKa: Der einfachste Weg, mit Java for Real zu beginnen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!