概要
実行可能Jarを生成し、作成されたJarを実行するGradleタスクを作成する
仕様
・実行可能jarを生成する
・jarの実行時にはシステムプロパティの設定が必要
・Main-Classはorg.gradle.JarMainクラス
・システムプロパティは以下の2つ
hage: hage-value
hige: hige-value
ソースコード
build.gradle
apply plugin: 'java' apply plugin: 'eclipse' sourceCompatibility = 1.7 targetCompatibility = 1.7 version = '1.0' jar { manifest { attributes 'Implementation-Title': 'GradleJarExecuteSample', 'Implementation-Version': version, 'Main-Class': 'org.gradle.JarMain' } from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } dependencies { testCompile 'junit:junit:4.10' } repositories { mavenCentral() } uploadArchives { repositories { flatDir { dirs 'repos' } } } task runJar(dependsOn:jar) { javaexec { main="-jar"; args jar.archivePath systemProperties = ['hage':'hage-value', 'hige':'hige-value'] } }
org.gradle.JarMain
package org.gradle; public class JarMain { public static void main(String[] args) { System.out.println("hoge"); System.out.println(System.getProperty("hage")); System.out.println(System.getProperty("hige")); } }
runJarタスク実行結果
[sts] ----------------------------------------------------- [sts] Starting Gradle build for the following tasks: [sts] :runJar [sts] ----------------------------------------------------- hoge hage-value hige-value :compileJava :processResources UP-TO-DATE :classes :jar :runJar BUILD SUCCESSFUL Total time: 0.567 secs [sts] ----------------------------------------------------- [sts] Build finished succesfully! [sts] Time taken: 0 min, 0 sec [sts] -----------------------------------------------------