Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
30
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@y-sugasawa

gradle 最低限個人的まとめ

前提

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

- 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
30
Help us understand the problem. What are the problem?