(使用gradle 2.4)
对于我的一个项目,分成几个子模块,我使用的影子插件非常适合我的需要;它有一个main,并且根据插件的README的建议,我将应用程序插件与它结合使用,以便在清单中生成main - class,所有工作都很好。
现在,这是一个SonarQube插件项目,我也使用(成功!)gradle声纳包插件。这个插件的作用是,当你./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跳过
如果你想配置所有子项目,那么你可以在你的根build.gradle
subprojects {
// Disable the 'jar' task
tasks.jar.enabled = false
}