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

gradle 最低限個人的まとめ

More than 3 years have passed since last update.

前提

フォルダ構成は以下のとおり。

- project_name
             ├ src
             │  ├ main
             │  │    ├ java
             │  │    └ resource
             │  └ test
             │       ├ java
             │       └ resource
             ├ build
             └ build.gradle

雛型

build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'   // eclipse関係の設定ファイル作成

// 使用するJavaのバージョン
sourceCompatibility = '1.8'
targetCompatibility = '1.8'

// ソースはUTF-8で記述
tasks.withType(JavaCompile){ options.encoding = 'UTF-8' }

repositories {
  // mavenリポジトリを使用
  mavenCentral()
}

dependencies {
  // 使用するライブラリを記述していく
  compile 'org.apache.commons:commons-lang3:3.3.2'

  // テストクラスのみで使用する場合は以下みたく。「testCompile」で
  testCompile "junit:junit:4.11"
}

eclipseへのインポート

この状態で以下のコマンド実行

$ gradle eclipse

するとプロジェクト直下にdependenciesに記述したファイルの依存関係を含む「.classpath」だったり「.project」が出来上がるのでeclipseにインポート可能になる

ビルド

$ gradle build

上記で、コンパイルやテストクラスの実行が行われる。
作成されたclassファイル等はbuildディレクトリに出力されている。
テストクラスの実行をさせたくない場合は以下のように「-x」オプションで指定したタスクを除外できる。

$ gradle build -x test

Javaアプリを実行

作成したJavaアプリケーションをgradleから実行するにはまずは、以下のプラグインをbuild.gradleに追加する

build.gradle
apply plugin: 'application'

次に、Mainクラスの指定を行う

build.gradle
mainClassName = 'package.ClassName' // パッケージ名を含めたクラス名を指定する

そして、以下のコマンドを実行すると、コンパイルが行われ指定したクラスが実行される

$ gradle run

引数を渡す場合は以下のようにする
まずは、実行例

// 「hoge」と「fuga」という2つの引数を渡す
$ gradle run -Pargs="hoge fuga"

次にbuild.gradle

build.gradle
// runの設定を変更する
run {
  // 「args」という引数が存在するかチェック
  if (project.hasProperty('args')) {
    // 存在する場合は、半角スペースでsplitして引数に設定する
    args(project.args.split('\\s+'))
  }
}

WARファイルを作成

ディレクトリはこんな感じ(tomcat前提)
「webapp」ディレクトリ配下に「WEB-INF」ディレクトリだったり、js等の静的ファイルを置く感じ

- project_name
             ├ src
             │  ├ main
             │  │    ├ java
             |  |    ├ respurces
             │  │    └ webapp    // NEW!!
             |  |           ├ js
             |  |           ├ ...
             |  |           └ WEB-INF
             │  └ test
             │       ├ java
             │       └ resource
             ├ build
             └ build.gradle

まずは、war作成用のプラグインを追加

build.gradle
apply plugin: 'war'

後は以下のコマンドを実行するだけで、「build/libs」配下にwarファイルが作成される

$ gradle war
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
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