Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Создание и запуск проекта

Проект Micronaut не собирают вручную: его создаёт официальный генератор Micronaut Launch. Он выдаёт готовый pom.xml с нужными версиями, главный класс, файл настроек и первый тест. Генератор доступен на сайте и как консольная программа mn — результат одинаковый.

Через сайт

Откройте launch.micronaut.io и выберите:

ПолеЗначение
Application TypeMicronaut Application
Java Version25
Nameblog
Base Packagecom.example
Micronaut Version5.2.1
Language / Build / TestJava / Maven / JUnit

Дополнительные возможности (Features) пока не добавляйте — мы будем подключать их по одной и смотреть, что каждая меняет. Нажмите Generate Project → Download Zip и распакуйте архив в папку blog.

Через консоль

Если установлен Micronaut CLI (например, через SDKMAN: sdk install micronaut), тот же проект создаёт одна команда:

mn create-app com.example.blog --build=maven --lang=java --jdk=25
cd blog

Последняя часть имени (blog) становится именем проекта и папки, остальное (com.example) — пакетом.

Что внутри

blog/
├── pom.xml                         сборка Maven, родитель micronaut-parent 5.2.1
├── mvnw, mvnw.bat                  обёртка Maven
├── micronaut-cli.yml               какие возможности выбраны в генераторе
└── src/
    ├── main/java/com/example/Application.java
    ├── main/resources/application.properties
    ├── main/resources/logback.xml  настройки журнала
    └── test/java/com/example/BlogTest.java

Главный класс запускает приложение:

// src/main/java/com/example/Application.java
package com.example;
 
import io.micronaut.runtime.Micronaut;
 
public class Application {
 
    public static void main(String[] args) {
        Micronaut.run(Application.class, args);
    }
}

Micronaut.run создаёт контекст с объектами приложения и запускает HTTP-сервер Netty. Файл настроек пока содержит одну строку — micronaut.application.name=blog.

Запуск

Из папки проекта выполните:

./mvnw mn:run

В Windows (cmd или PowerShell) команда — mvnw.bat mn:run. Первый запуск скачивает зависимости и занимает пару минут. Затем Maven показывает Watching for changes in [src\main\java, src\main\resources], баннер и строку:

INFO  io.micronaut.runtime.Micronaut - Startup completed in 575ms. Server Running: http://localhost:8080

Цель mn:run следит за файлами: после сохранения исходника приложение пересобирается и перезапускается само. Остановить сервер — Ctrl+C.

Первый запрос

Контроллеров ещё нет, но сервер уже отвечает:

curl -i http://localhost:8080/
HTTP/1.1 404 Not Found
Content-Type: application/json
 
{"_links":{"self":[{"href":"/","templated":false}]},"_embedded":{"errors":[{"message":"Page Not Found"}]},"message":"Not Found"}

Ответ 404 в формате JSON — значит, сервер работает, просто по адресу / ничего нет. Так Micronaut по умолчанию описывает все ошибки.

Частая ошибка

Если порт 8080 уже занят другой программой (например, вторым запущенным приложением), старт прерывается:

ERROR i.m.h.server.netty.NettyHttpServer - Unable to start server. Port *:8080 already in use.
ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Unable to start Micronaut server on *:8080

Остановите старый процесс или выберите другой порт строкой micronaut.server.port=8081 в application.properties.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.