元Web系エンジニアのごはんブログ

JavaとかKotlinとかのごはん関係のブログです。

IntelliJ IDEAとGradleとTomcatでHelloWorld

IntelliJ IDEAが学生・教員は無料で使えることがわかり早速ダウンロードしました。そこで、今回はGradleでプロジェクトを作成し、Tomcat上でServletを動かすところまでをやってみました。

今回実行した、環境は次のとおりです。

プロジェクトの作成

まず、プロジェクトを作成します。IDEAを起動し「Create Project」を選択します。

f:id:webarata3:20170416123050p:plain

次に、一覧から「Gradle」を選択し「Additional Libraries and Frameworks」から「Web」を選択します。

f:id:webarata3:20170416123905p:plain

プロジェクトの「GroupId」と「ArtifactId」を入力します。今回はそれぞれ「com.example」、「hello-world」と入力しました。

f:id:webarata3:20170416123957p:plain

Gradle等の設定になりますので、「Use gradle wrapper task configuration」を選択します。

f:id:webarata3:20170416124110p:plain

最後に、プロジェクト名とプロジェクトの場所を決定します。

f:id:webarata3:20170416124137p:plain

ここまででプロジェクトの雛形ができます。プロジェクト作成直後は、gradle wrapper関連のファイル(gradlew等)はないのですが、少し待つと生えてきます。

f:id:webarata3:20170416125209p:plain

Gradleの設定

最初にGradleで必要なライブラリーを設定します。build.gradleを開いて、次のように編集します。

group 'com.example'
version '1.0-SNAPSHOT'

task wrapper(type: Wrapper) {
  gradleVersion = '3.3'
  distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
}

apply plugin: 'war'

repositories {
    mavenCentral()
}

dependencies {
    providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
    providedCompile 'javax.servlet.jsp:javax.servlet.jsp-api:2.3.1'
    providedCompile 'javax.el:javax.el-api:3.0.0'
    testCompile group: 'junit', name: 'junit', version: '4.11'
}

追加するのは、providedCompileの3行です。

そして、GradleのViewを表示します。メニューから「View」→「Gradle」を選択します。

f:id:webarata3:20170416131520p:plain

次のような画面が表示されたら、「Reflesh all Gradle projects」アイコンを押します。

f:id:webarata3:20170416131702p:plain

そうすると、依存ライブラリーが解決されます。

f:id:webarata3:20170416131837p:plain

Servletの作成

デフォルトだとソースフォルダーが作成されていませんので、「src/main」フォルダーの中に「java」フォルダーを作成します。

f:id:webarata3:20170416125814p:plain

f:id:webarata3:20170416125429p:plain

適当なパッケージを作ります。ここでは、「com.example」としています。

f:id:webarata3:20170416125921p:plain

f:id:webarata3:20170416125945p:plain

次に作成したパッケージにHelloServletクラスを作成します。

f:id:webarata3:20170416130241p:plain

f:id:webarata3:20170416130426p:plain

HelloServletクラスは次のように作成します。

package com.example;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/helloWorld")
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        PrintWriter pw = resp.getWriter();
        pw.println("HelloWorld");
        pw.flush();
        pw.close();
    }
}

Tomcatの準備

最後にTomcatを準備します。TomcatMacLinuxの場合にはtar.gz版をダウンロードするといいと思います。Tomcatは展開して適当なフォルダーに置いておきます。

続いて、ウインドウの右上の、実行設定のボタンを押し「Edlit Configurations...」を選択します。

f:id:webarata3:20170416133348p:plain

「+」を押して「Tomcat Server」→「Local」を選択します。

f:id:webarata3:20170416133715p:plain

表示された画面で、任意の「name」を設定し、「Application Server」の「Configure」ボタンを押します。

f:id:webarata3:20170416133947p:plain

参照ボタンを押して、Tomcatを展開したフォルダーを選択します。

f:id:webarata3:20170416134235p:plain

続いて、「Deployment」タブを選択し、「+(Add)」ボタンを押します。

f:id:webarata3:20170416134612p:plain

「+(Add)」ボタンを押した後、「Artifacts」を選択します。Artifactsはwarで固められた形式と、warに固めずファイルシステムとして展開されたもの(exploded)の2種類から選択できます。ここでは、warで固められたものを選択しています。

f:id:webarata3:20170416134555p:plain

実行するwarファイルを指定します。

f:id:webarata3:20170416134836p:plain

設定すると、コンテキストパスが設定できますので、適当に設定します。今回は「/example」としました。

f:id:webarata3:20170420191335p:plain

ここまでで準備完了です。「実行」ボタンを押すとTomcatが起動しデフォルトのブラウザが起動します。

ブラウザーのアドレスバーに「http://localhost:8080/exmple/helloWorld」と入力すると次のように表示されます。

f:id:webarata3:20170416135427p:plain