■ ビルド時にテストを実行しないようにするには
サンプル
gradle build -x test
参考文献
http://anton0825.hatenablog.com/entry/2014/11/19/000000
■ ファイル内の特定文字列を置換する
* org.apache.tools.ant.filters.ReplaceTokens を使う
フォルダ構成
project + etc | + hello_world.properties + build.gradle
サンプル
project/etc/hello_world.propertiesuser=@___USER_NAME___@ password=@___PASSWORD___@build.gradle
task helloWorld(type: Copy) { def userName = 'admin' def password = 'password01' from 'etc' into buildDir include 'hello_world.properties' filter(org.apache.tools.ant.filters.ReplaceTokens, tokens: [ ___USER_NAME___: userName, ___PASSWORD___: password ]) }
出力結果
build/hello_world.propertiesuser=admin password=password01
補足:buildDir について
http://gradle.monochromeroad.com/docs/userguide/writing_build_scripts.htmlより
* name : プロジェクトディレクトリの名前 * path : プロジェクトの絶対パス * projectDir : ビルドスクリプトのあるディレクトリ * buildDir : projectDir/build
参考文献
https://dev.classmethod.jp/server-side/gradle/gradle-first-contact/
■ サブプロジェクトを含めてビルドするには
前提条件
* サブプロジェクトも Gradle でビルドできること
フォルダ構成
workspace + RootProject | + build.gradle | + settings.gradle | + SubProject + build.gradle + settings.gradle
サンプル
RootProject/settings.gradlerootProject.name = 'RootProject' includeFlat ':SubProject'RootProject/build.gradle
dependencies { compile project(':SubProject') }
■ 実行ファイル作成
【1】アプリケーションを纏めてzip化
* 実行に必要なファイルをZip化(内容は以下の「解凍後のフォルダ構成」参照)build.gradle
apply plugin: 'application' // アプリケーションのメインクラス mainClassName = 'com.sample.Main' // Zipのファイル名に付与するバージョン番号 version = '1.0.0' // JVMの引数(ヒープサイズなど) applicationDefaultJvmArgs = ['-Xms512m', '-Xmx512m'] distZip { baseName = 'HelloWorld' } // or distZip.baseName = 'HelloWorld'実行コマンド
gradle distZip // Eclipse // gradlew distZip // 【生成物】.\build\distributions\HelloWorld-1.0.0.zip が生成される解凍後のフォルダ構成
* bin : 起動スクリプト(Windows/Linux) * lib : jar 及び依存 jar ファイル
参考文献
http://gradle.monochromeroad.com/docs/userguide/application_plugin.htmlhttps://qiita.com/opengl-8080/items/4c1aa85b4737bd362d9e
https://int128.hatenablog.com/entry/2014/12/10/080000
■ 文字化け対策
「Gradle: エラー: この文字は、エンコーディングMS932にマップできません」 がでるので、その対策。
サンプル
build.gradledef defaultEncoding = 'UTF-8' tasks.withType(Compile) { options.encoding = defaultEncoding }
参考文献
http://anton0825.hatenablog.com/entry/2015/03/30/000000
■ 外部ファイルから値を取得するには
* ant でいう「build.properties」的なものhttps://blogs.yahoo.co.jp/dk521123/33989901.html
* 「gradle.properties」を用意し「getProperty("【キー】")」で取得する
サンプル
gradle.propertieshello.world=This is hello world!build.gradle
def hello = getProperty("hello.world") println "Result : " + hello
参考文献
https://qiita.com/hatimiti/items/a127311d739c9d3e0045