前提
フォルダ構成は以下のとおり。
- 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