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

EclipseのGradleプロジェクト作成方法比較

More than 3 years have passed since last update.

概要

EclipseでGradleのJavaプロジェクトを使う場合、プロジェクトを作成する方法がいくつかあります。各方法の違いが知りたかったので調査してみました。

プロジェクトの作り方を大別すると、コンソールからgradleコマンドで作成する方法と、Eclipseにプラグインを入れてメニューから作る方法に分かれるかと思います。さらに、Eclipseのプラグインは何種類かあるようなので、メジャーそうなのをためしています。

  • 方法1:コンソールからgradleコマンドでプロジェクトを作成
  • 方法2:Gradle IDE Packプラグインで、Eclipse上からプロジェクトを作成
  • 方法3:Gradle (STS) Integration for Eclipseプラグインで、Eclipse上からプロジェクトを作成
  • 方法4:Eclipse公式のBuildshipプラグインで、Eclipse上からプロジェクトを作成

検証環境

  • Mac
  • java 1.8.0_65
  • Gradle 2.12
  • Eclipse Java EE IDE for Web Developers (Mars.2 Release (4.5.2))

各種インストール

方法1:コンソールからgradleコマンドでプロジェクトを作成

Gradleはあらかじめインストールされていて、gradleコマンドが使える状態にしておきます。

$ gradle --version
------------------------------------------------------------
Gradle 2.12

コンソールからJavaプロジェクトを作成します。今回は、create_gradle-cmdという名前で作りました。

mkdir create-gradle-cmd
cd create-gradle-cmd/
gradle init --type java-library

「gradle init --type java-library」でJavaのスケルトンプロジェクトが作成されます。

$ ls -la
total 40
drwxr-xr-x  3 grachro  wheel   102  3 21 21:32 .gradle
-rw-r--r--  1 grachro  wheel  1216  3 21 21:32 build.gradle
drwxr-xr-x  3 grachro  wheel   102  3 21 21:32 gradle
-rwxr-xr-x  1 grachro  wheel  4971  3 21 21:32 gradlew
-rw-r--r--  1 grachro  wheel  2404  3 21 21:32 gradlew.bat
-rw-r--r--  1 grachro  wheel   651  3 21 21:32 settings.gradle
drwxr-xr-x  4 grachro  wheel   136  3 21 21:32 src

build.gradleの「apply plugin: 'java'」の下に「apply plugin: 'eclipse'」を追加します。

build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'

コンソールからgradleコマンドを実行します。

gradle eclipse

GradleのJavaプロジェクトにEclipse用のプロジェクトファイルが追加されます。

$ ls -la
total 56
drwxr-xr-x  12 grachro  wheel   408  3 21 21:45 .
drwxr-xr-x   4 grachro  wheel   136  3 21 21:32 ..
-rw-r--r--   1 grachro  wheel  1343  3 21 21:45 .classpath
drwxr-xr-x   3 grachro  wheel   102  3 21 21:32 .gradle
-rw-r--r--   1 grachro  wheel   360  3 21 21:45 .project
drwxr-xr-x   3 grachro  wheel   102  3 21 21:45 .settings
-rw-r--r--   1 grachro  wheel  1240  3 21 21:41 build.gradle
drwxr-xr-x   3 grachro  wheel   102  3 21 21:32 gradle
-rwxr-xr-x   1 grachro  wheel  4971  3 21 21:32 gradlew
-rw-r--r--   1 grachro  wheel  2404  3 21 21:32 gradlew.bat
-rw-r--r--   1 grachro  wheel   651  3 21 21:32 settings.gradle
drwxr-xr-x   4 grachro  wheel   136  3 21 21:32 src

Eclipseを立ち上げてインポートします。
05_プロジェクトインポート.png
06_プロジェクトインポート.png

作成されたプロジェクト
スクリーンショット 2016-03-21 23.16.30.png

build.gradle
/*
 * This build file was auto generated by running the Gradle 'init' task
 * by 'grachro' at '16/03/21 21:32' with Gradle 2.12
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/2.12/userguide/tutorial_java_projects.html
 */

// Apply the java plugin to add support for Java
apply plugin: 'java'
apply plugin: 'eclipse'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use 'jcenter' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.18'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile 'junit:junit:4.12'
}

方法2:Gradle IDE Packプラグインで、Eclipse上からプロジェクトを作成

Nodeclipseが配布しているプラグインです。このプラグインが、「eclipse gradle プラグイン」とかでググった時に一番よく見かけます。

スクリーンショット 2016-03-22 0.32.23.png

サーバーエラーでインストールできませんでした。
08_Gradle_IDE_Pack.png

方法3:Gradle (STS) Integration for Eclipseプラグインで、Eclipse上からプロジェクトを作成

Pivotalが配布しているプラグインです。STSとあるので、本来はSpring Tool SuiteからGradleを使うことを想定されたプラグインなのかもしれません。

09_Gradle (STS) Integration for Eclipse.png

10_Gradle (STS) Integration for Eclipse2.png

インストールが終わったらEclipseを再起動して、メニューからプロジェクトを作成します。今回は、create_stsという名前で作りました。

11_Gradle (STS) Integration for Eclipse_3.png

(「Gradle(STS)」メニューの上の「Gradle」メニューは、後述するBuildshipのメニューです。)

12_Gradle (STS) Integration for Eclipse_4.png

作成されたプロジェクト
スクリーンショット 2016-03-21 23.05.14.png

build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'

sourceCompatibility = 1.5
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart',
                   'Implementation-Version': version
    }
}

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

test {
    systemProperties 'property': 'value'
}

uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}

方法4:Eclipse公式のBuildshipプラグインで、Eclipse上からプロジェクトを作成

Install New SoftwareからBuildshipプラグインを探してインストールします。(マーケットプレイスからでも入れられると思います。)

01_eclipse公式のGradleプラグイン_01.png

インストールが終わったらEclipseを再起動して、メニューからプロジェクトを作成します。今回は、create_Buildshipという名前で作りました。

01_eclipse公式のGradleプラグイン_02.png

01_eclipse公式のGradleプラグイン_03.png

01_eclipse公式のGradleプラグイン_04.png

作成されたプロジェクト
スクリーンショット 2016-03-21 23.13.00.png

build.gradle
/*
 * This build file was auto generated by running the Gradle 'init' task
 * by 'grachro' at '16/03/21 21:13' with Gradle 2.9
 *
 * This generated file contains a sample Java project to get you started.
 * For more details take a look at the Java Quickstart chapter in the Gradle
 * user guide available at https://docs.gradle.org/2.9/userguide/tutorial_java_projects.html
 */

// Apply the java plugin to add support for Java
apply plugin: 'java'

// In this section you declare where to find the dependencies of your project
repositories {
    // Use 'jcenter' for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

// In this section you declare the dependencies for your production and test code
dependencies {
    // The production code uses the SLF4J logging API at compile time
    compile 'org.slf4j:slf4j-api:1.7.13'

    // Declare the dependency for your favourite test framework you want to use in your tests.
    // TestNG is also supported by the Gradle Test task. Just change the
    // testCompile dependency to testCompile 'org.testng:testng:6.8.1' and add
    // 'test.useTestNG()' to your build script.
    testCompile 'junit:junit:4.12'
}

}

各方法の比較結果

方法1:gradleコマンド

IDE上で全部済ませる手軽さに比べると若干面倒ですが、Gradleプロジェクト公式方法なので一番安心感があります。apply plugin: 'eclipse'の代わりに、'idea'にすると IntelliJ IDEA用の設定も作れるので、今後の応用も聞きます。

方法2:Gradle IDE Pack

一番メジャーだと思われるプラグインですが、サーバが落ちてたのでためせまんでした。Eclipseのプラグインを入れるときにはありがちです。
日を改めてチャレンジするかも。 2016/3/28追記: 追加検証しました。)

方法3:Gradle (STS) Integration for Eclipse

他の方法と大きく違う点は、gradlew、gradlew.bat、settings.gradleの3ファイルが無いことです。その他細かい点では、他の方法だとJavaのコンパイルレベルがIDEのディフォルトを使うのに対し、STSでは1.5が指定されています。
dependenciesのライブラリには、特にSpring系のものが無い代わりに、なぜかcommons-collectionsがディフォルトで定義されていました。また、org.gradle.Personクラスが作られています。Springフレームワークを使うには便利な状態なのかもしれません。

方法4:Buildshipプラグイン

Eclipseプロジェクトが配布しているプラグインなので、Eclipseから使うには一番手軽です。作成されたプロジェクトの構成は、gradleコマンドで作成した場合とほぼ同じです。

gradleコマンドとBuildshipプラグインの違い

  • Buildshipの方には、apply plugin: 'eclipse'が設定されていない
  • Buildshipの方が、dependenciesで指定しているライブラリのバージョンが古い(EclipseのプラグインのアップデートはGradleのアップデート後になるはずなので、今後も仕方ないかも。)
  • gradleコマンドが作成する設定はEclipseの従来のJavaプロジェクトの設定をシミュレートしているのに対し、Buildshipの方はgradle.prefsとorg.eclipse.buildship.core.prefsという新しい設定ファイルを作成している。
  • 依存するjarファイルが、Buildshipの方はProject and External Dependensies変数にまとまっているのに対し、gradleコマンド方は各jarが直接Build Pathに追加されている(そのためProjectツリーが煩雑になる)。

github

今回作成したプロジェクトの詳細はgithubで見れます。

2016/3/28追記

Gradle IDE Packプラグインも比較できました。
EclipseのGradleプロジェクト作成方法比較(追補編)

grachro
某ネットショップでJava全般担当のプログラマ
oisix
こだわりの有機野菜や無添加の自然食品など「体に良くて美味しい食品」を販売するECサイト「Oisix(おいしっくす)」を開発・運営しています。
https://www.oisixradaichi.co.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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした