Edited at

GradleでJavaアプリを実行する最小構成サンプル

More than 3 years have passed since last update.

最小構成でJavaとGradleをコンソールのツールとして使うためのスケルトンのようなものです。バッチ処理とかどうでしょうか。最小とは言えクラスが複数あって、依存ライブラリもあるようなパターンにしています。

料理の仕方としては、build.gradleを置いたディレクトリで、gradle nantoka や、gradle -Ddousita.param=kousita kantoka 実行すると、それぞれ指定されたクラスのmainメソッドが実行されます。mainへのコマンドライン引数もそれなりに渡ります。

その後は、必要に応じて必要な機能やテストやGradleのプラグインや、使いたいプロパティファイルなどを足していけば良いと思います。色々いじってみると、Gradleの理解が深まるかもしれません。


必要なファイル


build.gradle

apply plugin: 'java'

repositories {
jcenter()
}

dependencies {
compile 'org.apache.commons:commons-lang3:3.4'
}

task nantoka(type: JavaExec) {
main = "org.example.Nantoka"
classpath = sourceSets.main.runtimeClasspath
args('apple', 'banana', 'cherry')
args 'durian'
}

// gradle -Ddousita.param=kousita kantoka
task kantoka(type: JavaExec) {
main = "org.example.Kantoka"
classpath = sourceSets.main.runtimeClasspath
args(System.properties['dousita.param'] ?: "default")
}



Nantoka.java

package org.example;

import java.util.Arrays;

public class Nantoka {
public static void main(String[] args) {
System.out.println("This is Nantoka");
System.out.println(args.length);
Arrays.stream(args).forEach(System.out::println);
Kantoka.doKantoka();
}

static void doNantoka() {
System.out.println("i am Nantoka");
}
}



Kantoka.java

package org.example;

import org.apache.commons.lang3.SystemUtils;

import java.util.Arrays;

public class Kantoka {
public static void main(String[] args) {
System.out.println("This is Kantoka");
System.out.println(args.length);
Arrays.stream(args).forEach(System.out::println);
System.out.println(SystemUtils.JAVA_VERSION);
Nantoka.doNantoka();
}

static void doKantoka() {
System.out.println("i am Kantoka");
}
}



ディレクトリ構成

この構成で、ファイルを配置してください。

│  build.gradle

└─src
└─main
└─java
└─org
└─example
Kantoka.java
Nantoka.java


バージョン番号など


  • Java 8

  • Gradle 2.10