このマニュアルでは、LinuxあるいはMacOSでJavaアプリケーションのプロジェクトを作成し、ロリポップ!マネージドクラウドにデプロイするまでのチュートリアルをご案内いたします。
また、このチュートリアルでは、以下のツール、ライブラリを利用します。
開発ツールのインストール
openjdkのインストール
jdk.java.net より、利用するjavaのバージョンに合わせた開発環境をダウンロード、およびインストールします。
sdkmanのインストール
以下の作業はローカル環境でのターミナルで実行します。
sdkmanをインストールします。
$ curl -s "https://get.sdkman.io" | bash
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
gradleのインストール
sdkmanを利用し、ビルドツールをインストールします。
$ sdk install gradle
Javaアプリケーションのプロジェクトの作成
プロジェクトの初期化
以下の作業はローカル環境でのターミナルで実行します。
プロジェクトを作りたいディレクトリに移動して以下のコマンドを実行します。
$ gradle init
作成するプロジェクト種別を尋ねられるので、選択するプロジェクト種別の数字を入力します。 今回はjava-application(6)を選択します。
Select type of project to generate:
1: basic
2: cpp-application
3: cpp-library
4: groovy-application
5: groovy-library
6: java-application
7: java-library
8: kotlin-application
9: kotlin-library
10: scala-library
Enter selection (default: basic) [1..10] 6
続いて、ビルドスクリプトのDSLを選択します。 今回はKotlin(2)を選択します。
Select build script DSL:
1: groovy
2: kotlin
Enter selection (default: groovy) [1..2] 2
テストフレームワークを選択します。 今回はjunit(1)を選択します。
Select test framework:
1: junit
2: testng
3: spock
Enter selection (default: junit) [1..3] 1
最後にプロジェクト名とパッケージ名を入力しましょう。 ここでは、プロジェクト名を myapp
、 パッケージ名を com.mycompany.myapp
として作成します。
Project name (default: myapp): myapp
Source package (default: myapp): com.mycompany.myapp
BUILD SUCCESSFUL in 2m 52s
2 actionable tasks: 2 executed
アプリケーションの編集
初期化したプロジェクトのアプリケーションを編集します。
今回は例として、 Sparkフレームワークを利用し、「Hello world」を表示するWebアプリケーションを作成します。
まずはSparkをプロジェクトの依存に追加します。
build.gradle.kts
を開いて、 dependencies
の記述を探し、以下のように編集します。詳細については Sparkのドキュメント もご参照ください。
(省略)
dependencies {
// This dependency is found on compile classpath of this component and consumers.
implementation("com.google.guava:guava:27.0.1-jre")
// Use JUnit test framework
testImplementation("junit:junit:4.12")
// 以下を追記します
compile("com.sparkjava:spark-core:2.8.0")
}
(省略)
また、デプロイを簡単にするためにFat Jarを作成できるようにしましょう。 Fat Jarを作成すると、単一のjarファイルのみをデプロイすればアプリケーションが動作します。
Fat Jarの作成に、Gradle Shadow Plugin(johnrengelman/shadow) を利用します。
build.gradle.kts
を開いて、 plugins
の記述を探し、以下のように編集します。詳細については Shadowプラグインのユーザガイド もご参照ください。
(省略)
plugins {
// Apply the java plugin to add support for Java
java
// Apply the application plugin to add support for building an application
application
// 以下を追加します
id("com.github.johnrengelman.shadow") version "5.0.0"
}
(省略)
次に、src/main/java/com/mycompany/myapp/App.java
を以下のように編集します。
このコードがアプリケーションの実装部分になります。
(設定したパッケージ名により、ファイルのパスは異なりますのでご注意ください。下記は com.mycompany.mayapp
とした場合)
package com.mycompany.myapp;
import static spark.Spark.*;
public class App {
public static void main(String[] args) {
port(8080);
get("/", (req, res) -> "Hello World");
}
}
テストコード src/test/java/com/mycompany/myapp/AppTest.java
の編集も同様に必要です。 ただし、本手順では簡単のため削除して次に進みます。
$ rm src/test/java/com/mycompany/myapp/AppTest.java
ビルドとアプリケーションの起動の確認
上記のプロジェクトの編集を完了すると、ビルドが可能となります。次のコマンドを実行しましょう。
$ gradle build
build/libs/myapp-all.jar
というjarファイルが作成されたことを確認しましょう。
このファイルを -jar
オプションを付けて指定してjavaを実行すると、サーバが起動します。
$ java -jar build/libs/myapp-all.jar
ブラウザで http://localhost:8080 にアクセスすると以下のように表示されます。
終了するには、コマンドを実行したターミナルで Ctrl+c
を入力します。
また、ローカル環境においては gradle run
でサーバ起動することもできますので、併せてご確認ください。
ロリポップ!マネージドクラウドのサーバ側での準備
ロリポップ!マネージドクラウドのサーバ側で、作成したアプリケーションを動かすための準備をします。
ssh接続の準備
マネージドクラウドのサーバにはsshでログインすることができます。
ssh接続の準備をしましょう。
公開鍵をプロジェクトに登録します。公開鍵の作成・登録方法をご参照ください。
プロジェクトの詳細ページ を表示し、「SSH / SFTP」>「SSHコマンド」に記載されているコマンドをコピーします。
以下の形式のコマンドが記載されています
ssh -p ポート ユーザ名@ホスト名
例えば、次のようなコマンドになります。
ssh -p 35000 foo-bar-1234@ssh-1.mc.lolipop.jp
ターミナルで実行すると、マネージドクラウドにsshログインすることが可能です。
アプリケーションのデプロイ
アプリケーションをロリポップ!マネージドクラウドにデプロイします。
今回のチュートリアルで作成したアプリケーションは、ローカル環境で作成した build/libs/myapp-all.jar
ファイルのみをデプロイすれば動作します。
ローカル環境の build/libs/myapp-all.jar
をマネージドクラウド環境の /var/app/myapp-all.jar
へデプロイしましょう。 以下のコマンドで可能です。
scp -P ポート ./build/libs/myapp-all.jar ユーザー名@ホスト名:/var/app/myapp-all.jar
実施したら、sshログインして設置されたかどうかを確認してみましょう。
foo-bar-1234@gitpush-java-java-my-app:~$ ls myapp-all.jar
-rw-r--r-- 1 foo-bar-1234 www-data 5634443 May 9 08:47 myapp-all.jar
起動コマンドの変更
サーバを起動するためのコマンドを変更します。 プロジェクトの詳細ページ の 起動コマンド
のフォームより変更可能です。
デフォルトでは、以下のように初期ページを表示させるためのWebアプリケーションを起動するためのコマンドが記述されています。
/opt/openjdk/bin/java -jar /var/app/current/lib/simple-server.jar
今回作成したアプリケーションを起動させるためのコマンドに書き換えます。 フォームに以下のように記入し、「変更を適用」>「実行」を選択します。
java -jar /var/app/myapp-all.jar
確認
これでアプリケーションのデプロイと設定は完了です。サイトにアクセスしてみましょう!
プロジェクトの詳細ページの プロジェクトURL
からサイトにアクセスできます。
「Hello World」が表示されれば成功です。