スマートデバイスアプリ開発のあれやこれや

GradleでWebアプリ

今更ながらJavaのビルドツール「Gradle」を触ってみました。
Mavenに比べるとビルドスクリプトが手軽に書けるのが良いですね!
(pom.xmlの構文エラーとの戦いを経験している特に)


今回はEclipseのGradleプロジェクト形式で作成したプロジェクトを
Tomcat上で動かすところまでの手順を整理してみます。
手元の環境はこんな感じです。

1. Gradle(STS)プロジェクトを作る

予めEclipseにGradle(STS)プラグインをインストールしておきましょう。
ヘルプのEclipse Marketplaceから入手可能です!

Java Quick start」でシンプルにプロジェクトを作成します。


f:id:cross-xross:20160319111038p:plain

2. Servlet-APIを入手する

今回は単純なJavaServletで動作を確認します。
build.gradeを編集し、Servlet-APIを依存ライブラリに追加します。

dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}


依存ライブラリを追加したらプロジェクトを選択して
「Refresh Dependencies」を実行すれば依存ライブラリが入手可能です。

3. プロジェクトをWTPに変換する

GradleプロジェクトのままではTomcatにデプロイできないので
WTPプロジェクトに変換したいと思います。

apply plugin: 'war'
apply plugin: 'eclipse-wtp'


「war」プラグインと「eclipse-wtpプラグインを追加で導入します。
上記の通りbuild.gradeファイルの先頭に記述を追加します。

導入後に

gradle eclipse


を実行すればWTPプロジェクトに変換されます。

4. Servletを実装する

ここは普通にServletを実装します。

@WebServlet(name="MyServlet", urlPatterns={"/test"})
public class MyServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		resp.setContentType("text/html");
		PrintWriter writer = resp.getWriter();
		writer.append("<html><body><h1>Hoge</h1></body></html>");
		writer.flush();
	}
}

5. 実行する from Eclipse

実行→Run on Serverで起動します。
http://localhost:8080/test で画面が表示されます。

6. WARファイルを作成する

gradle buildコマンドを実行すればwarファイルも作成可能です。