GradleでTomcatプロジェクトを実行する
gradle init --type java-library
で雛形を作ります。
次に、build.gradleを以下のように書きます。
/* * This build file was generated by the Gradle 'init' task. * * This generated file contains a sample Java project to get you started. * For more details take a look at the Java Quickstart chapter in the Gradle * user guide available at https://docs.gradle.org/3.3/userguide/tutorial_java_projects.html */ buildscript { repositories { jcenter() } dependencies { classpath 'com.bmuschko:gradle-tomcat-plugin:2.0' } } apply plugin: 'war' apply plugin: 'com.bmuschko.tomcat' repositories { mavenCentral() } dependencies { providedCompile 'javax:javaee-web-api:6.0' compile 'org.slf4j:slf4j-api:1.7.5' testCompile 'junit:junit:4.11' def tomcatVersion = '7.0.52' tomcat "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}", "org.apache.tomcat.embed:tomcat-embed-logging-juli:${tomcatVersion}" tomcat("org.apache.tomcat.embed:tomcat-embed-jasper:${tomcatVersion}") { exclude group: 'org.eclipse.jdt.core.compiler', module: 'ecj' } }
src/main/java/example
というディレクトリを作り、サーブレットを作成します。
HelloServet.java
です。
package exapmle; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; @WebServlet(name="HelloServlet", urlPatterns={"/hello"}) public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.getWriter().print("Hello!"); } }
src/main/webapp/
というディレクトリを作成し、webapp以下にindex.html
を作成します。
index.html
です。
<h1>Hello, tomcat plugin.</h1>
ここまでやったら、
gradle tomcatRunWar
を実行します。
省略形はgradle tRW
でOKです。
ビルドを実行すると、
- Tomcatのライブラリなど依存ライブラリのダウンロード
- Webアプリケーションのビルドとパッケージング(WARファイルの作成)
- 組み込みTomcatの起動
- Webアプリケーション(WARファイル)を組み込みTomcatへデプロイ
という一連の手順がGradleによって自動的に行われます。