技術メモ

これは、Gradle:プラグインを作り、既存プラグインの動作を変更する及びGradle:プロジェクト間の共通処理パターンを実現するで書いたことのまとめである。

Gradleにおいて機能拡張を行うには、いくつかの方法がある。 ...

技術メモ

JavaExecは、特にjarファイルにまとめなくとも、ソースをコンパイルした状態で実行できる。

task something(type: JavaExec, dependsOn: ) { main = "foo.bar.Som ...

技術メモ

Gradle:build scanの使い方、その1の続きである。

Gradleを使っていて本当に困ることは、推移的依存によって引っ張ってこられるライブラリの中に余計なものがあることだ。これには二つのケースがある。

そ ...

技術メモ

build scanというのは、build.gradleファイルの内容を解析した結果を、Gradleチーム(?)の提供するサーバに送り込み、そのウェブサイトで様々な分析ができるというものだ。

当然、build.gradle ...

技術メモ

Gradleのスコープの仕組みはとてもわかりにくい。「アクセスできるだろう」と思っても、なぜかアクセスできなかったり、できないと思ってもアクセスできたりする。

これは、Gradleでのアクセス可能性がプログラミング言語とし ...



技術メモ

複数プロジェクトのdependenciesに決まりきったことを記述することがある。その筆頭としては、JUnit関連のライブラリだ。

例えば、

dependencies { testCompile group: 'or ...

技術メモ

gradle.propertiesは、他の設定ファイルとは異なり、マシンに一つだけなので、ここに様々な共通設定を書いておく、あるいは、より複雑な設定ファイルの場所を示しておくことができる。

さらに、公開ソフトウェアを開発中 ...

技術メモ

多数のプロジェクトで同じようなbuild.gradleがあるとき、その処理を共通化したい。これを行うには、既存のプラグインの動作を変更しなければならない。例えば、Gradleのコンベンションに従わない以下のような状況があるとする。

技術メモ

もともとGradleにはCopyタスクというのがあるが、これが非常に使いづらくわかりづらいので、antを使用したコピータスクを作成した。フォルダ(ディレクトリ)のみをまるごとコピーするが、コピーしないパターン、コピーするパターンも指定 ...

技術メモ

既存タスクの動作を変更したいことがある。例えば

task copyit(type: Copy) { thisIsExtraArg = 123}

のように、元のタスクには存在しないプロパティを作成し、それによって動作を変更した ...