Skip to content

Instantly share code, notes, and snippets.

@hotta
Last active August 27, 2019 04:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hotta/5b44dcfb50f4ab7c145ddfe227313e23 to your computer and use it in GitHub Desktop.
Save hotta/5b44dcfb50f4ab7c145ddfe227313e23 to your computer and use it in GitHub Desktop.
Gradle QuickStart
// Gradle QuickStart - 7.2. 基本的なJavaプロジェクト
// cf. http://gradle.monochromeroad.com/docs/userguide/userguide.html
// Gradle が使用する JRE
// システムの JDK/JRE。デフォルト以外の JDK を使用したい場合は
// JAVA_HOME 環境変数を調整する。
// Gradle が使用する Groovy
// Gradle 同梱の Groovy。システムの Groovy は参照されない。
// Gradle 起動時のパス
// GRADLE_HOME/bin が PATH に追加されていること
// Gradle実行時に引き渡すJVMオプション
// 環境変数GRADLE_OPTSとJAVA_OPTSで設定。後者はシステムグローバル。
// たとえばプロキシ設定は後者、使用メモリ設定は前者のように使い分ける。
// これらの設定は、gradleやgradlewスクリプトの頭に記述することも可能。
// Could not find tools.jar.でビルドに失敗
// JDK を見つけられない。
// java-1.8.0-openjdk は JRE のみ。JDK は -devel に入っている。
// $ sudo yum install java-1.8.0-openjdk-devel
// 7.1. Javaプラグイン
// 7.2. 基本的なJavaプロジェクト
// 例7.1 Javaプラグインの使用
// 例7.8 Eclipseプラグイン
// 新しい書き方?
plugins {
id 'java'
id 'eclipse'
}
// 古い書き方?
apply plugin: 'java'
// gradle におけるディレクトリ構造の想定:
// src/main/java/ 製品のソースコード
// src/test/java/ テストのソースコード
// src/main/resources/ JAR に入れるべきリソースファイル
// src/test/resources/ テスト実行に使うクラスパスに入れるべきファイル
// build/ すべての出力ファイル
// build/libs/ JAR ファイルの出力先
// 7.2.1. プロジェクトのビルド
// gradle build プロジェクトのフルビルドを行う
// gradle clean build ディレクトリ配下をすべて削除する
// gradle assemble コンパイル&JAR 生成、WAR 生成等。
// ただしユニットテスト実行せず。
// gradle check コンパイル&テスト。
// gradle tasks タスク一覧の表示
// 7.2.2. External dependencies
// リポジトリ:
// - プロジェクトが依存するものを取得
// - プロジェクトのアーティファクトを公開
// - (またはこの両方)
// 例7.3 (公開)Mavenリポジトリの追加
repositories {
mavenCentral()
}
// 依存関係の追加:
// - 製品クラスはコンパイル時に commons コレクションに依存する
// - テストクラスはコンパイル時に junit に依存する
dependencies {
implementation group: 'commons-collections', name: 'commons-collections', version: '3.2.2'
testImplementation group: 'junit', name: 'junit', version: '4.+'
}
// 7.2.3. プロジェクトのカスタマイズ
// プロジェクトのプロパティの値を(デフォルトから)変更する
// gradle properties プロジェクトのプロパティ一覧の表示
// 例7.5 MANIFEST.MFのカスタマイズ
// sourceCompatibility = 1.5 // deprecated
version = '1.0'
jar {
manifest {
attributes 'Implementation-Title': 'Gradle Quickstart',
'Implementation-Version': version
}
}
// 例7.6 テスト用システムプロパティの追加
test {
systemProperties 'property': 'value'
}
// 7.2.4. JARファイルの公開
// 例7.7 JARファイルの公開 - ローカルディレクトリに公開
uploadArchives {
repositories {
flatDir {
dirs 'repos'
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment