はじめに
Eclipse GlassFish 7.0.18 以降、glassfish-embedded
の jar が実行可能 jar になったので、コマンドラインから war を渡すことで直接アプリケーションを実行できるようになりました。
Gradle で war を実行
Gradle で glassfish-embedded
を実行すれば、ビルドした war を実行できます。
plugins { war } // ... task<Exec>("run") { dependsOn("war") // download glassfish-embedded-all val url = "https://repo1.maven.org/maven2/org/glassfish/main/extras/glassfish-embedded-all/7.0.22/glassfish-embedded-all-7.0.22.jar" val dest = layout.projectDirectory.file("glassfish-embedded-all-7.0.22.jar") if (!dest.asFile.exists()) uri(url).toURL().openStream().use { `java.nio.file`.Files.copy(it, dest.asFile.toPath()) } // run glassfish-embedded-all with war commandLine("java", "-Duser.language=en", "-Duser.country=US", "-jar", dest.asFile.absolutePath, "build/libs/app.war") standardInput = System.`in` }
上記 run
タスクを作成しておけば、以下のように war をビルドしてそのまま実行することができます。
./gradlew war run