(これはgradle 2.4を使用しています)
いくつかのサブモジュールに分割された私のプロジェクトの1つでは、 シャドウプラグイン を使用します。これは私のニーズに非常に適しています。メインがあり、プラグインのREADMEで推奨されているように、メインクラスがマニフェストで生成されるように、アプリケーションプラグインを組み合わせて使用します。すべてが正常に機能します。
さて、これはSonarQubeプラグインプロジェクトであり、私も(成功しました!) gradle sonar packaginプラグイン を使用します。そして、このプラグインが行うことは、あなたが./gradlew build
、「通常の」jarの代わりにソナープラグインを生成します。
ここでサブプロジェクトに対して同じことを行いたいと思いますが、「通常の」プラグインではなくシャドウjarプラグインのみを生成する必要があります...現在、この単純なファイルを使用して両方を生成しています。
buildscript {
repositories {
jcenter();
}
dependencies {
classpath(group: "com.github.jengelman.gradle.plugins",
name:"shadow", version:"1.2.1");
}
}
apply(plugin: "application");
apply(plugin: "com.github.johnrengelman.shadow");
dependencies {
// whatever
}
mainClassName = //whatever
artifacts {
shadowJar;
}
// Here is the hack...
build.dependsOn(shadowJar);
通常のjarではなくシャドウjarのみが生成されるように、このファイルを変更するにはどうすればよいですか?
Gradleスクリプトに次の行を追加することで、jarタスクを無効にできます。
// Disable the 'jar' task
jar.enabled = false
したがって、gradleスクリプトを実行すると、次のように表示されます。
:jar SKIPPED
すべてのサブプロジェクトを構成する場合は、ルートbuild.gradleに以下を追加できます。
subprojects {
// Disable the 'jar' task
tasks.jar.enabled = false
}