Gradle:Jarに同じエントリが重複してしまうバグ

最新版で修正されているのかどうか不明だが、Gradle4.4.1ではこのバグがある。jarタスクでjarファイルを作成すると、エントリが重複してしまう。
再現サンプルbuild.gradle
apply plugin ...Gradle:タスクをプログラム的に呼び出す方法は存在しない

これがどうしてもわからないし、世界的にも悩んでいる人が多いようだ。そして、公式の回答としては「その方法は提供していない」というものだ。そんなバカなと思うかもしれないが、どうやってもうまくいかない。
やりたいこと例えばCop ...
Gradle:機能拡張の方法三つ

これは、Gradle:プラグインを作り、既存プラグインの動作を変更する及びGradle:プロジェクト間の共通処理パターンを実現するで書いたことのまとめである。
Gradleにおいて機能拡張を行うには、いくつかの方法がある。 ...
Gradle:JavaExecの使い方

JavaExecは、特にjarファイルにまとめなくとも、ソースをコンパイルした状態で実行できる。
task something(type: JavaExec, dependsOn: ) { main = "foo.bar.Som ...Gradle:build scanの使い方、その2

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

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

Gradleのスコープの仕組みはとてもわかりにくい。「アクセスできるだろう」と思っても、なぜかアクセスできなかったり、できないと思ってもアクセスできたりする。
これは、Gradleでのアクセス可能性がプログラミング言語とし ...
Gradle:dependenciesへの定番設定

複数プロジェクトのdependenciesに決まりきったことを記述することがある。その筆頭としては、JUnit関連のライブラリだ。
例えば、
dependencies { testCompile group: 'or ...Gradle:gradle.propertiesの値をどこでも利用できるようにする

gradle.propertiesは、他の設定ファイルとは異なり、マシンに一つだけなので、ここに様々な共通設定を書いておく、あるいは、より複雑な設定ファイルの場所を示しておくことができる。
さらに、公開ソフトウェアを開発中 ...
Gradle:プラグインを作り、既存プラグインの動作を変更する

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