| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
340 バイト追加 、 2020年2月16日 (日) 04:26
編集の要約なし
==[[Gradle]]==
[[Groovy]] |
{{amazon|4798136433}}
*ビルドは1つ以上のプロジェクトからなる
*プロジェクトは1つ以上のタスクからなる
*ビルドはgradleコマンドで実行するビルドは[[gradle]]コマンドで実行する*デフォルトではカレントディレクトリの、build.[[gradle]]*ビルドスクリプトはコードであり、Groovyの機能をすべて利用可能ビルドスクリプトはコードであり、[[Groovy]]の機能をすべて利用可能=====build.[[gradle]]=====
task hello {
doLast {
}
> [[gradle ]] hello Starting a [[Gradle ]] Daemon (subsequent builds will be faster)
:hello
hello
===タスク===
*タスクの一覧を確認
*プラグインを追加するとタスクも追加される[[プラグイン]]を追加するとタスクも追加される > [[gradle ]] tasks
*暗黙的なものも含めプロパティの一覧を表示
> [[gradle ]] properties
===主要なコマンドラインオプション===
|-
|-b
|build.gradle以外のファイル名を指定[[gradle]]以外のファイル名を指定
|-
|}
===initタスク===
> cd .\sample_java_project\
> [[gradle ]] init --type java-library
:wrapper
:init
> tree
フォルダー パスの一覧: ボリューム ACERACE[[R]]
ボリューム シリアル番号は 00000005 C68A:087D です
C:.
├─.[[gradle]]
│ ├─3.4
│ │ ├─file-changes
│ │ └─taskHistory
│ └─buildOutputCleanup
├─gradle├─[[gradle]]
│ └─wrapper
└─src
└─java
*規約はMavenに倣って定義される規約は[[Maven]]に倣って定義される
**プロダクションコードは src/main/java
**テストコードは src/main/java
====生成された build.[[gradle]]==== // Apply the java-library plugin to add support for [[Java ]] Library
apply plugin: 'java-library'
*javaプラグインを適用java[[プラグイン]]を適用
**javaプロジェクトに対する規約、必要なタスクが追加される
// In this section you declare where to find the dependencies of your project
repositories {
// Use jcenter for resolving resol[[vi]]ng your dependencies. // You can declare any [[Maven]]/Ivy/file repository here.
jcenter()
}
===ビルドの実行と結果確認===
====利用可能なタスクを確認====
*[[gradle ]] tasks*javaプラグインを適用したことで、多くのタスクが追加されたjava[[プラグイン]]を適用したことで、多くのタスクが追加された > [[gradle ]] tasks Starting a [[Gradle ]] Daemon, 1 incompatible and 1 stopped Daemons could not be reused, use --status for details
:tasks
Documentation tasks
-------------------
javadoc - Generates Javadoc [[Java]]doc API documentation for the main source code.
[[Help ]] tasks
----------
buildEnvironment buildEn[[vi]]ronment - Displays all buildscript dependencies declared in root project 'sample_java_project'.
components - Displays the components produced by root project 'sample_java_project'. [incubating]
dependencies - Displays all dependencies declared in root project 'sample_java_project'.
Verification tasks
------------------
check - Runs [[R]]uns all checks. test - Runs [[R]]uns the unit tests.
Rules[[R]]ules
-----
Pattern: clean<TaskName>: Cleans the output files of a task.
Pattern: upload<ConfigurationName>: Assembles and uploads the artifacts belonging to a configuration.
To see all tasks and more detail, run [[gradle ]] tasks --all
To see more detail about a task, run [[gradle ]] help --task <task>
BUILD SUCCESSFUL
Total time: 1 mins 8.296 secs
====[[Gradle ]] GUI====*[[gradle ]] --gui*タスクの一覧を確認するためには、Gradle タスクの一覧を確認するためには、[[Gradle]] GUIが便利
{{ref_image gradle_gui[[gradle]]_gui.jpg}}
====ビルド====
*[[gradle ]] build
*実行結果の成果物は、buildディレクトリ以下に生成
*再度実行すると、変更がない部分はスキップされる
*結果を破棄し再実行の場合、build clean
> [[gradle ]] build Starting a [[Gradle ]] Daemon, 1 stopped Daemon could not be reused, use --status for details :compileJavacompile[[Java]]
Download https://jcenter.bintray.com/org/apache/commons/commons-math3/3.6.1/commons-math3-3.6.1.pom
:
Download https://jcenter.bintray.com/com/google/guava/guava/20.0/guava-20.0.jar
:processResources process[[R]]esources NO-SOURCESOU[[R]]CE
:classes
:jar
:assemble
:compileTestJavacompileTest[[Java]]
Download https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.pom
:
Download https://jcenter.bintray.com/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
:processTestResources processTest[[R]]esources NO-SOURCESOU[[R]]CE
:testClasses
:test
BUILD SUCCESSFUL
====Gradleデーモン[[Gradle]]デーモン====*[[gradle ]] 起動に時間がかかる*[[gradle ]] --daemon build で起動*[[gradle ]] --stop で停止(一定時間後に自動で終了するようにはなっている)===Gradleラッパー[[Gradle]]ラッパー===*Gradleをインストールせずにビルドの実施が可能[[Gradle]]をインストールせずにビルドの実施が可能*Subversion,Gitなどからプロジェクトをチェックアウト[[Git]]などからプロジェクトをチェックアウト*gradlewコマンドを実行[[gradle]]wコマンドを実行**Gradleバイナリが自動的にダウンロードされそのままビルドが実行される[[Gradle]]バイナリが自動的にダウンロードされそのままビルドが実行される
=====ラッパーを適用する=====
*プロジェクトルートで、gradle プロジェクトルートで、[[gradle]] wrapper > [[gradle ]] wrapper
:wrapper
> tree
フォルダー パスの一覧: ボリューム ACERACE[[R]]
ボリューム シリアル番号は 000000FA C68A:087D です
C:.
├─.[[gradle]]
│ ├─3.4
│ │ ├─file-changes
│ │ └─taskHistory
│ └─buildOutputCleanup
└─gradle└─[[gradle]]
└─wrapper
*gradlew [[gradle]]w tasks
**自動的にバイナリのダウンロードおよびセットアップが実行
> .\gradlew[[gradle]]w.bat tasks Downloading https://services.[[gradle]].org/distributions/[[gradle]]-3.4-bin.zip Unzipping C:\Users\piroto\.[[gradle]]\wrapper\dists\[[gradle]]-3.4-bin\aeufj4znodijbvwfbsq3044r0\[[gradle]]-3.4-bin.zip to C:\Users\piroto\.g radle\wrapper\dists\[[gradle]]-3.4-bin\aeufj4znodijbvwfbsq3044r0
:tasks
*Gradleラッパーを使用する場合、タスクの実行には、gradlewを利用するGradleラッパーを使用する場合、タスクの実行には、[[gradle]]wを利用する
*バージョンを固定できる
*CIツール利用時に、Gradleインストール不要CIツール利用時に、[[Gradle]]インストール不要
==ビルド==
===ビルドの入力情報===
====Groovyスクリプト[[Groovy]]スクリプト====
{|class="wikitable"
!項目
|-
|初期化スクリプト
|init.[[gradle]]
|ビルドで最初に実行される
|-
|設定スクリプト
|settings.[[gradle]]
|プロジェクト設定を行う
|-
|ビルドスクリプト
|build.[[gradle]]
|ビルド定義を行う
|-
|}
====環境変数/コマンドライン引数====
*Gradleがインストールされているマシンの環境変数[[Gradle]]がインストールされているマシンの環境変数
*ビルド実行時にコマンドラインから渡す引数
====buildSrcプロジェクト====
*プロジェクトディレクトリ
===ビルドの流れ===
#コマンドの解析~Gradleの起動コマンドの解析~[[Gradle]]の起動
#スクリプトファイルの初期化
#プロジェクトの設定
#タスクの実行
===アーキテクチャ===
*Gradle本体とプラグインの2つに大別[[Gradle]]本体とプラグインの2つに大別
====仕組み====
{|class="wikitable"
===構造===
*スクリプトファイルは、ステートメントとスクリプトブロックの2つの構造で成り立つ
*Groovyスクリプトがベース[[Groovy]]スクリプトがベース
====ステートメント====
*ローカル変数、プロパティ、メソッド実行など、プログラミングでのステートメントと同様
xxx = ''
====スクリプトブロック====
*Gradle独自の概念[[Gradle]]独自の概念
*ある設定を行うための領域を示す
*実際にはクロージャを引数とするメソッド実際には[[クロージャ]]を引数とするメソッド
// スクリプトブロック
設定 {
|}
===スクリプトブロックとドメインオブジェクト===
*スクリプトファイルは、Gradleのドメインオブジェクトに移譲されスクリプトファイルは、[[Gradle]]のドメインオブジェクトに移譲され
*thisは移譲されたドメインオブジェクトを表す
*スクリプトブロックはクロージャを引数とするメソッドスクリプトブロックは[[クロージャ]]を引数とするメソッド*クロージャは、何かのオブジェクトに移譲されて実行される。クロージャに記述する内容は処理を移譲するオブジェクトが許容できるものである必要がある[[クロージャ]]は、何かのオブジェクトに移譲されて実行される。[[クロージャ]]に記述する内容は処理を移譲するオブジェクトが許容できるものである必要がある<blockquote>スクリプトファイルに記述する定義は、GradleドメインオブジェクトそのものへのAPI呼び出しと同義スクリプトファイルに記述する定義は、[[Gradle]]ドメインオブジェクトそのものへのAPI呼び出しと同義</blockquote>
====主要なスクリプトブロック====

案内メニュー