Micronaut 创建项目

2023-03-14 16:10 更新

创建项目是 CLI 的主要用法。创建新项目的主要命令是 create-app,它创建一个通过 HTTP 进行通信的标准服务器应用程序。对于其他类型的应用程序,请参阅下面的文档。

表 1. Micronaut CLI 项目创建命令
命令 描述 选项 示例

create-app

创建一个基本的 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

创建命令行 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

创建一个 Micronaut 无服务器函数,默认使用 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

创建一个仅通过消息传递协议进行通信的 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

创建一个使用 gRPC 的 Micronaut 应用程序。

  • -l--lang

  • -t--test

  • -b--build

  • -f--features

  • -i--inplace

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

创建命令标志

create-* 命令生成一个基本的 Micronaut 项目,带有用于指定功能、语言、测试框架和构建工具的可选标志。除函数外的所有项目都包含一个用于启动应用程序的默认应用程序类。

表 2. Flags
Flag 描述 示例

-l--lang

项目使用的语言(java、groovy、kotlin 之一——默认为 java)

--lang groovy

-t--test

用于项目的测试框架(junit、spock 之一——默认为 junit)

--test spock

-b--build

构建工具(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

创建后,可以使用 Application 类或适当的构建工具任务启动应用程序。

启动 Gradle 项目

$ ./gradlew run

启动 Maven 项目

$ ./mvnw mn:run

语言/测试功能

默认情况下,创建命令会生成一个 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]

某些命令依赖于此文件中的数据来确定它们是否应该可执行。例如,create-kafka-listener 命令要求 kafka 是列表中的功能之一。

CLI 使用 micronaut-cli.yml 中的值来生成代码。生成项目后,您可以编辑这些值以更改项目默认值,但是您必须提供所需的依赖项和/或配置才能使用您选择的语言/框架。例如,您可以将 testFramework 属性更改为 spock 以使 CLI 在运行命令(例如 create-controller)时生成 Spock 测试,但您需要将 Spock 依赖项添加到您的构建中。

Groovy

要创建支持 Groovy 的应用程序(默认使用 Spock),请通过 lang 标志提供适当的语言:

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

这包括项目中的 Groovy 和 Spock 依赖项,并在 micronaut-cli.yml 中写入适当的值。

Kotlin

要创建支持 Kotlin 的应用程序(默认使用 Kotest),请通过 lang 标志提供适当的语言:

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

这包括项目中的 Kotlin 和 Kotest 依赖项,并在 micronaut-cli.yml 中写入适当的值。

Build Tool

默认情况下,create-app 创建一个 Gradle 项目,在项目根目录中有一个 build.gradle 文件。要使用 Maven 构建工具创建应用程序,请通过构建标志提供适当的选项:

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

Create-Cli-App

create-cli-app 命令生成一个 Micronaut 命令行应用程序项目,带有指定语言、测试框架、特性、配置文件和构建工具的可选标志。默认情况下,该项目包含 picocli 功能以支持命令行选项解析。该项目将包含一个 *Command 类(基于项目名称,例如 hello-world 生成 HelloWorldCommand),以及一个关联的测试,该测试实例化命令并验证它是否可以解析命令行选项。

创建后,可以使用 *Command 类或适当的构建工具任务启动应用程序。

启动 Gradle 项目

$ ./gradlew run

启动 Maven 项目

$ ./mvnw mn:run

创建函数应用

create-function-app 命令生成一个 Micronaut 函数项目,该项目针对无服务器环境进行了优化,带有用于指定语言、测试框架、功能和构建工具的可选标志。该项目将包括一个 *Function 类(基于项目名称,例如 hello-world 生成 HelloWorldFunction),以及一个关联的测试,该测试实例化该函数并验证它是否可以接收请求。

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

贡献

CLI 源代码位于 https://github.com/micronaut-projects/micronaut-starter。那里有关于如何贡献和其他资源的信息。

比较版本

查看新版本 Micronaut 的版本依赖更新和其他更改的最简单方法是使用旧版本生成一个干净的应用程序,使用新版本的 mn CLI 生成另一个应用程序,然后比较这些目录。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号