Micronaut 創(chuàng)建項目

2023-03-14 16:10 更新

創(chuàng)建項目是 CLI 的主要用法。創(chuàng)建新項目的主要命令是 create-app,它創(chuàng)建一個通過 HTTP 進行通信的標準服務器應用程序。對于其他類型的應用程序,請參閱下面的文檔。

表 1. Micronaut CLI 項目創(chuàng)建命令
命令 描述 選項 示例

create-app

創(chuàng)建一個基本的 Micronaut 應用程序。

  • -l--lang

  • -t--test

  • -b--build

  • -f--features

  • -i--inplace

mn create-app my-project --features
 mongo-reactive,security-jwt --build maven

create-cli-app

創(chuàng)建命令行 Micronaut 應用程序。

  • -l--lang

  • -t--test

  • -b--build

  • -f--features

  • -i--inplace

mn create-cli-app my-project --features
 http-client,jdbc-hikari --build maven
 --lang kotlin --test kotest

create-function-app

創(chuàng)建一個 Micronaut 無服務器函數(shù),默認使用 AWS。

  • -l--lang

  • -t--test

  • -b--build

  • -f--features

  • -i--inplace

mn create-function-app my-lambda-function
 --lang groovy --test spock

create-messaging-app

創(chuàng)建一個僅通過消息傳遞協(xié)議進行通信的 Micronaut 應用程序。默認使用 Kafka,但可以使用 --features rabbitmq 切換到 RabbitMQ。

  • -l--lang

  • -t--test

  • -b--build

  • -f--features

  • -i--inplace

mn create-messaging-app my-broker
 --lang groovy --test spock

create-grpc-app

創(chuàng)建一個使用 gRPC 的 Micronaut 應用程序。

  • -l--lang

  • -t--test

  • -b--build

  • -f--features

  • -i--inplace

mn create-grpc-app my-grpc-app
 --lang groovy --test spock

創(chuàng)建命令標志

create-* 命令生成一個基本的 Micronaut 項目,帶有用于指定功能、語言、測試框架和構(gòu)建工具的可選標志。除函數(shù)外的所有項目都包含一個用于啟動應用程序的默認應用程序類。

表 2. Flags
Flag 描述 示例

-l--lang

項目使用的語言(java、groovy、kotlin 之一——默認為 java)

--lang groovy

-t--test

用于項目的測試框架(junit、spock 之一——默認為 junit)

--test spock

-b--build

構(gòu)建工具(gradle、gradle_kotlin、maven 之一——java 和 groovy 語言默認為 gradle;kotlin 語言默認為 gradle_kotlin)

--build maven

-f--features

用于項目的功能,以逗號分隔

--features security-jwt,mongo-gorm

-f security-jwt -f mongo-gorm

-i--inplace

如果存在,則在當前目錄中生成項目(如果設置了此標志,則項目名稱是可選的)

--inplace

創(chuàng)建后,可以使用 Application 類或適當?shù)臉?gòu)建工具任務啟動應用程序。

啟動 Gradle 項目

$ ./gradlew run

啟動 Maven 項目

$ ./mvnw mn:run

語言/測試功能

默認情況下,創(chuàng)建命令會生成一個 Java 應用程序,并將 JUnit 配置為測試框架。所有選擇的選項和應用的功能都作為屬性存儲在 micronaut-cli.yml 文件中,如下所示:

micronaut-cli.yml

applicationType: default
defaultPackage: com.example
testFramework: junit
sourceLanguage: java
buildTool: gradle
features: [annotation-api, app-name, application, gradle, http-client, java, junit, logback, netty-server, shade, yaml]

某些命令依賴于此文件中的數(shù)據(jù)來確定它們是否應該可執(zhí)行。例如,create-kafka-listener 命令要求 kafka 是列表中的功能之一。

CLI 使用 micronaut-cli.yml 中的值來生成代碼。生成項目后,您可以編輯這些值以更改項目默認值,但是您必須提供所需的依賴項和/或配置才能使用您選擇的語言/框架。例如,您可以將 testFramework 屬性更改為 spock 以使 CLI 在運行命令(例如 create-controller)時生成 Spock 測試,但您需要將 Spock 依賴項添加到您的構(gòu)建中。

Groovy

要創(chuàng)建支持 Groovy 的應用程序(默認使用 Spock),請通過 lang 標志提供適當?shù)恼Z言:

$ mn create-app my-groovy-app --lang groovy

這包括項目中的 Groovy 和 Spock 依賴項,并在 micronaut-cli.yml 中寫入適當?shù)闹怠?/p>

Kotlin

要創(chuàng)建支持 Kotlin 的應用程序(默認使用 Kotest),請通過 lang 標志提供適當?shù)恼Z言:

$ mn create-app my-kotlin-app --lang kotlin

這包括項目中的 Kotlin 和 Kotest 依賴項,并在 micronaut-cli.yml 中寫入適當?shù)闹怠?/p>

Build Tool

默認情況下,create-app 創(chuàng)建一個 Gradle 項目,在項目根目錄中有一個 build.gradle 文件。要使用 Maven 構(gòu)建工具創(chuàng)建應用程序,請通過構(gòu)建標志提供適當?shù)倪x項:

$ mn create-app my-maven-app --build maven

Create-Cli-App

create-cli-app 命令生成一個 Micronaut 命令行應用程序項目,帶有指定語言、測試框架、特性、配置文件和構(gòu)建工具的可選標志。默認情況下,該項目包含 picocli 功能以支持命令行選項解析。該項目將包含一個 *Command 類(基于項目名稱,例如 hello-world 生成 HelloWorldCommand),以及一個關(guān)聯(lián)的測試,該測試實例化命令并驗證它是否可以解析命令行選項。

創(chuàng)建后,可以使用 *Command 類或適當?shù)臉?gòu)建工具任務啟動應用程序。

啟動 Gradle 項目

$ ./gradlew run

啟動 Maven 項目

$ ./mvnw mn:run

創(chuàng)建函數(shù)應用

create-function-app 命令生成一個 Micronaut 函數(shù)項目,該項目針對無服務器環(huán)境進行了優(yōu)化,帶有用于指定語言、測試框架、功能和構(gòu)建工具的可選標志。該項目將包括一個 *Function 類(基于項目名稱,例如 hello-world 生成 HelloWorldFunction),以及一個關(guān)聯(lián)的測試,該測試實例化該函數(shù)并驗證它是否可以接收請求。

目前,AWS Lambda、Micronaut Azure 和 Google Cloud 是支持 Micronaut 功能的云提供商。要使用其他提供程序,請在功能中添加一個:--features azure-function 或--features google-cloud-function。

貢獻

CLI 源代碼位于 https://github.com/micronaut-projects/micronaut-starter。那里有關(guān)于如何貢獻和其他資源的信息。

比較版本

查看新版本 Micronaut 的版本依賴更新和其他更改的最簡單方法是使用舊版本生成一個干凈的應用程序,使用新版本的 mn CLI 生成另一個應用程序,然后比較這些目錄。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號