GradleでWebアプリ
今更ながらJavaのビルドツール「Gradle」を触ってみました。
Mavenに比べるとビルドスクリプトが手軽に書けるのが良いですね!
(pom.xmlの構文エラーとの戦いを経験している特に)
今回はEclipseのGradleプロジェクト形式で作成したプロジェクトを
Tomcat上で動かすところまでの手順を整理してみます。
手元の環境はこんな感じです。
1. Gradle(STS)プロジェクトを作る
予めEclipseにGradle(STS)プラグインをインストールしておきましょう。
ヘルプのEclipse Marketplaceから入手可能です!
「Java Quick start」でシンプルにプロジェクトを作成します。
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ファイルも作成可能です。