---
title: pom.xmlだけで作るWebアプリ
tags: ["Maven"]
categories: ["Programming", "Java", "Maven"]
date: 2014-12-02T14:59:55Z
updated: 2014-12-02T14:59:55Z
---

<blockquote class="twitter-tweet" lang="en"><p><a href="https://twitter.com/backpaper0">@backpaper0</a> mavenはあれだよ。頭打ちがだいたい想像つくのが。gradleとか無限に広がるじゃん。いざとなればbuild.gradleでwebアプリとか作れるじゃん。作らんけど。</p>&mdash; irof@Javarista (@irof) <a href="https://twitter.com/irof/status/539448074871918593">December 1, 2014</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

それ、pom.xmlでもできるよ

``` xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>demo</groupId>
    <artifactId>demo</artifactId>
    <version>1.0-SNAPSHOT</version>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.7</version>
                <dependencies>
                    <dependency>
                        <groupId>com.sparkjava</groupId>
                        <artifactId>spark-core</artifactId>
                        <version>2.0.0</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <id>hoge</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <script language="javascript"><![CDATA[
                                var Spark = Java.type('spark.Spark');
                                var System = Java.type('java.lang.System');

                                Spark.get('/', function(req, res) {
                                    return 'Hello World!';
                                });

                                System.out.println('==== Enter to stop ====');
                                System.in.read();
                                ]]></script>
                            </target>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
```

ただし、Java8に限る。

```
$ mvn validate -q
```

http://localhost:4567 にアクセス！
