Micronaut 創(chuàng)建項(xiàng)目

2023-03-14 16:10 更新

創(chuàng)建項(xiàng)目是 CLI 的主要用法。創(chuàng)建新項(xiàng)目的主要命令是 create-app,它創(chuàng)建一個(gè)通過 HTTP 進(jìn)行通信的標(biāo)準(zhǔn)服務(wù)器應(yīng)用程序。對(duì)于其他類型的應(yīng)用程序,請(qǐng)參閱下面的文檔。

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

create-app

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

  • -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 應(yīng)用程序。

  • -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)建一個(gè) Micronaut 無服務(wù)器函數(shù),默認(rèn)使用 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)建一個(gè)僅通過消息傳遞協(xié)議進(jìn)行通信的 Micronaut 應(yīng)用程序。默認(rèn)使用 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)建一個(gè)使用 gRPC 的 Micronaut 應(yīng)用程序。

  • -l--lang

  • -t--test

  • -b--build

  • -f--features

  • -i--inplace

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

創(chuàng)建命令標(biāo)志

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

表 2. Flags
Flag 描述 示例

-l--lang

項(xiàng)目使用的語言(java、groovy、kotlin 之一——默認(rèn)為 java)

--lang groovy

-t--test

用于項(xiàng)目的測(cè)試框架(junit、spock 之一——默認(rèn)為 junit)

--test spock

-b--build

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

--build maven

-f--features

用于項(xiàng)目的功能,以逗號(hào)分隔

--features security-jwt,mongo-gorm

-f security-jwt -f mongo-gorm

-i--inplace

如果存在,則在當(dāng)前目錄中生成項(xiàng)目(如果設(shè)置了此標(biāo)志,則項(xiàng)目名稱是可選的)

--inplace

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

啟動(dòng) Gradle 項(xiàng)目

$ ./gradlew run

啟動(dòng) Maven 項(xiàng)目

$ ./mvnw mn:run

語言/測(cè)試功能

默認(rèn)情況下,創(chuàng)建命令會(huì)生成一個(gè) Java 應(yīng)用程序,并將 JUnit 配置為測(cè)試框架。所有選擇的選項(xiàng)和應(yīng)用的功能都作為屬性存儲(chǔ)在 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ù)來確定它們是否應(yīng)該可執(zhí)行。例如,create-kafka-listener 命令要求 kafka 是列表中的功能之一。

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

Groovy

要?jiǎng)?chuàng)建支持 Groovy 的應(yīng)用程序(默認(rèn)使用 Spock),請(qǐng)通過 lang 標(biāo)志提供適當(dāng)?shù)恼Z言:

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

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

Kotlin

要?jiǎng)?chuàng)建支持 Kotlin 的應(yīng)用程序(默認(rèn)使用 Kotest),請(qǐng)通過 lang 標(biāo)志提供適當(dāng)?shù)恼Z言:

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

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

Build Tool

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

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

Create-Cli-App

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

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

啟動(dòng) Gradle 項(xiàng)目

$ ./gradlew run

啟動(dòng) Maven 項(xiàng)目

$ ./mvnw mn:run

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

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

目前,AWS Lambda、Micronaut Azure 和 Google Cloud 是支持 Micronaut 功能的云提供商。要使用其他提供程序,請(qǐng)?jiān)诠δ苤刑砑右粋€(gè):--features azure-function 或--features google-cloud-function。

貢獻(xiàn)

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

比較版本

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)