2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[3分で完結][備忘録]Micronautのインストールから実行まで

Last updated at Posted at 2019-10-29

JVMベースのフルスタックフレームワークであるMicronautで遊びたかったのでインストールから実行までの流れを簡単にまとめました。

環境

  • macOS Catalina 10.15

環境構築

sdkmanのインストール

sdkmanはパッケージマネージャー
sdkman経由でjdkとか他ツールを入れればバージョン管理が簡単になる

ちなみに筆者はこういうツールが大の苦手
自分でコツコツと入れたい派(そんな派閥はない?

下記コマンドを実行

$ curl -s https://get.sdkman.io | bash
All done!

Please open a new terminal, or run the following in the existing one:

    source "/Users/tshk_dev/.sdkman/bin/sdkman-init.sh"

Then issue the following command:

    sdk help

Enjoy!!!

で、次に下記のコマンドを打って、バージョンが出ればSDKMANインストール完了

$ source "$HOME/.sdkman/bin/sdkman-init.sh"
$ sdk version
SDKMAN 5.7.3+337

Javaインストール(既にインストール済の人は不要)

どのJavaがインストールできるか確認する

$sdk list java
================================================================================
Available Java Versions
================================================================================
 Vendor        | Use | Version      | Dist    | Status     | Identifier
--------------------------------------------------------------------------------
 AdoptOpenJDK  |     | 13.0.0.j9    | adpt    |            | 13.0.0.j9-adpt      
               |     | 13.0.0.hs    | adpt    |            | 13.0.0.hs-adpt      
               |     | 12.0.2.j9    | adpt    |            | 12.0.2.j9-adpt      
               |     | 12.0.2.hs    | adpt    |            | 12.0.2.hs-adpt      
               |     | 11.0.4.j9    | adpt    |            | 11.0.4.j9-adpt      
               |     | 11.0.4.hs    | adpt    |            | 11.0.4.hs-adpt      
               |     | 8.0.222.j9   | adpt    |            | 8.0.222.j9-adpt     
               |     | 8.0.222.hs   | adpt    |            | 8.0.222.hs-adpt     
 Amazon        |     | 11.0.5       | amzn    |            | 11.0.5-amzn         
               |     | 8.0.232      | amzn    |            | 8.0.232-amzn        
               |     | 8.0.202      | amzn    |            | 8.0.202-amzn        
 Azul Zulu     |     | 13.0.1       | zulu    |            | 13.0.1-zulu         
               |     | 12.0.2       | zulu    |            | 12.0.2-zulu         
               |     | 11.0.5       | zulu    |            | 11.0.5-zulu         
               |     | 10.0.2       | zulu    |            | 10.0.2-zulu         
               |     | 9.0.7        | zulu    |            | 9.0.7-zulu          
               |     | 8.0.232      | zulu    |            | 8.0.232-zulu        
               |     | 8.0.202      | zulu    |            | 8.0.202-zulu        
               |     | 7.0.181      | zulu    |            | 7.0.181-zulu        
 Azul ZuluFX   |     | 11.0.2       | zulufx  |            | 11.0.2-zulufx       
               |     | 8.0.202      | zulufx  |            | 8.0.202-zulufx      
 BellSoft      |     | 13.0.0       | librca  |            | 13.0.0-librca       
               |     | 12.0.2       | librca  |            | 12.0.2-librca       
               |     | 11.0.4       | librca  |            | 11.0.4-librca       
               |     | 8.0.222      | librca  |            | 8.0.222-librca      
 GraalVM       |     | 19.2.1       | grl     |            | 19.2.1-grl          
               |     | 19.1.1       | grl     |            | 19.1.1-grl          
               |     | 19.0.2       | grl     |            | 19.0.2-grl          
               |     | 1.0.0        | grl     |            | 1.0.0-rc-16-grl     
 Java.net      |     | 14.ea.18     | open    |            | 14.ea.18-open       
               |     | 13.0.1       | open    |            | 13.0.1-open         
               |     | 12.0.2       | open    |            | 12.0.2-open         
               |     | 11.0.2       | open    |            | 11.0.2-open         
               |     | 10.0.2       | open    |            | 10.0.2-open         
               |     | 9.0.4        | open    |            | 9.0.4-open          
 SAP           |     | 12.0.2       | sapmchn |            | 12.0.2-sapmchn      
               |     | 11.0.4       | sapmchn |            | 11.0.4-sapmchn      
================================================================================
Use the Identifier for installation:

    $ sdk install java 11.0.3.hs-adpt
================================================================================

AdoptOpenJDK 11.0.4.hs 
君に決めた!(特に理由はない)
さっそく下記コマンドをポチ

$ sdk install java 11.0.4.hs-adpt

Installing: java 11.0.4.hs-adpt
Done installing!

Setting java 11.0.4.hs-adpt as default.

インストールが完了して、下記コマンドで確認

$ java --version
openjdk 11.0.4 2019-07-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.4+11, mixed mode)

Micronautインストール

本命のMicrinautのインストール
下記コマンドをポチ

$ sdk install micronaut

Installing: micronaut 1.2.5
Done installing!


Setting micronaut 1.2.5 as default.

Micornautのコマンドでバージョン確認

$ mn --version
Resolving dependencies..
| Micronaut Version: 1.2.5
| JVM Version: 11.0.4

環境構築は以上

アプリケーション

動作確認のための簡単なアプリを作成

プロジェクト作成

サンプルプロジェクトはMicornautコマンドで作れる
※プロジェクトフォルダを作成したいディレクトリに移動してからポチってね

$ mn create-app sample-app

このままでも実行できるけど、公式サイトに沿ってブラウザで「Hello World」が表示されるまでやってみる

コントローラ作成

下記のJavaクラスを用意する
src/main/java/sample/app/HelloController.java

HelloController.java

package sample.app;

import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;
import io.micronaut.http.annotation.Produces;

@Controller("/hello") 
public class HelloController {
    @Get("/") 
    @Produces(MediaType.TEXT_PLAIN) 
    public String index() {
        return "Hello World"; 
    }
}

ビルド

$ ./gradlew build

実行

$ ./gradlew run

> Task :run
15:29:48.877 [main] INFO  io.micronaut.runtime.Micronaut - Startup completed in 632ms. Server Running: http://localhost:8080

ブラウザから
http://localhost:8080/hello
にアクセス
スクリーンショット 2019-10-29 15.33.08.png

これで完了

テスト (ついで)

テストクラス作成

src/test/java/sample/app/HelloControllerTest.java

HelloControllerTest.java

package sample.app;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

import io.micronaut.http.HttpRequest;
import io.micronaut.http.client.RxHttpClient;
import io.micronaut.http.client.annotation.Client;
import io.micronaut.test.annotation.MicronautTest;
import org.junit.jupiter.api.Test;

import javax.inject.Inject;

@MicronautTest 
public class HelloControllerTest {

    @Inject
    @Client("/")
    RxHttpClient client; 

    @Test
    public void testHello() {
        HttpRequest<String> request = HttpRequest.GET("/hello"); 
        String body = client.toBlocking().retrieve(request);

        assertNotNull(body);
        assertEquals("Hello World", body);
    }
}

テスト実行

$ ./gradlew test

テスト結果

テストレポートが生成されているのでブラウザで確認
build/reports/tests/test/index.html

スクリーンショット 2019-10-29 15.48.21.png

最後

後半は説明書くこともないくらいだったので手抜きですが参考までに
(ほぼ公式サイトに沿ってますが)

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?