JeKa は、シンプルさを重視した最新の Java ビルド ツールです。
Java を使い始めるとき、開発者は通常、コードを作成し、コンパイルして、実行するだけです。ただし、これだけでは、他のユーザーが再利用できる便利な Java アプリケーションやライブラリを作成するには十分ではありません。 Java で実用的なものを構築するには、次のことを行う必要があります:
これは、Maven や Gradle などの従来のビルド ツールを使用して行われることがよくあります。これらのツールには多大な学習が必要であり、面倒な構成が必要になる場合があります。
より簡単な代替手段は JBang です。これを使用すると、ほぼ単一ファイルの Java アプリを作成し、簡単に共有できます。
一方、Jeka は JBang のようにシンプルな依存関係管理とデプロイメントを提供しながら、適切なテストが含まれた標準的なマルチクラス アプリケーションやライブラリを構築できます。
前提条件: Jeka がインストールされている必要があります。
ヒント: 利用可能なオプションをリストするには、jeka Base: --doc.
を実行します。すぐにコーディングを開始できる基本構造を作成するには、次のコマンドを実行します。
jeka base: scaffold scaffold.kind=APP
次のプロジェクト構造が得られます:
. ├── 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
すべての Java コードは jeka-src フォルダーにあるはずです。
_dev は、開発 (テスト、ビルドなど) にのみ使用されるソース コードと依存関係用の特別なパッケージです。Java を初めて使用する場合は、無視するか削除しても問題ありません。
スキャフォールドされた例には、app パッケージに App クラスが含まれています。任意のパッケージ内のクラスを追加または変更できます。
IntelliJ と同期するには、次のコマンドを実行します。
jeka intellij: iml --force
IntelliJ に変更が表示されない場合は、プロジェクトのルート ディレクトリに移動し、jeka intellij: initProject.
を実行します。App.java クラスは、ライブラリを参照する @JkDep アノテーションを宣言します。ライブラリは必要なだけ追加できます。すべてのライブラリを同じ基本クラスで宣言することをお勧めします。
@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) { ... } }
依存関係の表記の詳細を参照してください。
さらに、JAR ファイルを次のディレクトリにコピーして貼り付けて、依存関係として自動的に含めることができます。
├── jeka-boot <- Jars included in the production classpath.
本番以外の依存関係を宣言します
本番環境に埋め込んで依存関係を追加するには、_dev パッケージの下のクラスへの依存関係を宣言します。
package _dev; @JkDep("org.junit.jupiter:junit-jupiter:5.11.4") @JkDep("org.mockito:mockito-junit-jupiter:5.15.2") class Build extends KBean { ... }
リマインダー: 依存関係を変更したら、忘れずに jeka intellij: iml を実行してください。
アプリケーションは以下を使用して実行できます:
jeka base: scaffold scaffold.kind=APP
開始前にコンパイルをクリーンにするには、--clean オプション (略して -c) を使用します。
このソース コードが Git リポジトリでホストされている場合、リポジトリを次のように参照することでアプリケーションを直接実行できます。
. ├── 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
アプリケーションではなくライブラリを作成する場合は、Maven リポジトリで公開するために、moduleId とバージョン管理の両方を宣言する必要があります。
jeka intellij: iml --force
これで、次のコマンドを実行してライブラリを公開できます:
@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) { ... } }
スキャフォールドされたコードには、_dev.test.MyTest テスト クラスがすでに含まれており、実行する準備ができています。
├── jeka-boot <- Jars included in the production classpath.
好きなパッケージにさらにテストを追加できます。ただし、_dev パッケージ (またはそのサブパッケージ) にないテスト クラスはデッド コードとして運用 JAR に含まれることに注意してください。
現在、Java は急速に進化しており、6 か月ごとに新しいリリースがリリースされています。 JeKa は、Java バージョンを切り替えるための非常に便利な方法を提供します。 jeka.properties ファイルでバージョンを指定するだけです:
package _dev; @JkDep("org.junit.jupiter:junit-jupiter:5.11.4") @JkDep("org.mockito:mockito-junit-jupiter:5.15.2") class Build extends KBean { ... }
これにより、次回のアプリケーションのコンパイルまたは実行中に JDK 23 が自動的にインストールされます。
特に、Jeka は次のコマンドを提供します。
jeka --program arg0 args1 ... # or `jeka -p` for short
その他のコマンド:
jeka --remote [git repo url] --program arg0 arg1 ... # or jeka -r [git repo url] -p
コードベースが拡大するにつれて、完全なプロジェクト構造を使用するほうが快適になるかもしれません。
プロジェクトへの移動は簡単です。その方法を理解するには、「プロジェクトのビルド」チュートリアルを参照してください。
コードベースに Kotlin コードを記述することもできます。 jeka.properties ファイルで使用する kotlin バージョンを指定するだけです:
@base.moduleId=org.example:my-lib @base.version=1.0.0-SNAPSHOT
これで、以下に示すように Kotlin コードを編集したり、コードベース内の既存の Java コードとシームレスに統合したり、100% Kotlin アプリケーションを作成したりすることもできます。
jeka maven: publish
Jeka は、従来のビルド ツールの負担なしで実際の Java アプリケーションの作成を開始できる実用的なモードを提供します。
そのポリモーフィックな構造により、単純さを犠牲にすることなく、段階的に増加する複雑さとサイズを処理できます。
リソース:
以上がJeKa: 実際に Java を始める最も簡単な方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。