mike-neckのブログ

Java or Groovy or Swift or Golang

Jerseyをjava -jarで動かす

こんにちわ、みけです。

某ブログで|д゚)チラッしている方がいらっしゃったので、

Jerseyをjava -jarで動かす (Gradle編) を書くことにしました。


Jerseyはサーブレット経由でなく com.sun.net.httpserver.HttpServerGrizzly 、Jettyで動かす事もできるのでGradle FatJar PluginなどでひとつのJARにまとめてしまえばjava -jarで実行できるJAX-RSアプリケーションの完成です。

例えばcom.sun.net.httpserver.HttpServerを使用するやつをdependenciesに突っ込んで、

dependencies {
    compile 'org.glassfish.jersey.containers:jersey-container-jdk-http:2.10.1'
    compile 'org.glassfish.jersey:jersey-bom:2.10.1@pom'
}

Gradle FatJar Pluginを突っ込んで、

apply plugin: 'fatjar'
buildscript {
    repositories {
        mavenCentral ()
    }
    dependencies {
        classpath 'eu.appsatori:gradle-fatjar-plugin:0.2'
    }
}

pomをexpand ZIPできないって怒られるから、ちょっと修正して

dependencies {
    compile 'org.glassfish.jersey.containers:jersey-container-jdk-http:2.10.1'
    compile 'org.glassfish.jersey:jersey-bom:2.10.1@pom' ,{
        ext {
            fatJarExclude = true
        }
    }
}

JAX-RSなコードを書いて、

省略

メインクラス書いて、

省略

gradle fatJarでJAR作ってjava -jar hoge.jarで動かしましょう。

ギッハブにもサンプル置いています。