Help us understand the problem. What is going on with this article?

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
kazurof
がんばりましょう。
http://kazurof.hateblo.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away