(这是使用gradle 2.4)
对于我的一个项目,分成几个子模块,我使用shadow plugin,它非常适合我的需要;它有一个main,并且根据插件的README的推荐,我使用应用程序插件与它一起使用,以便在清单中生成Main-Class,一切运行良好。
现在,这是一个SonarQube插件项目,我也使用(成功!)gradle sonar packagin plugin。这个插件的作用是,当你./gradlew build
生成声纳插件而不是#34;常规"广口瓶中。
我希望在这里为我的子项目做同样的事情,除了我希望它只生成阴影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?
答案 0 :(得分:9)
您可以通过将以下行添加到gradle脚本来禁用jar任务:
// Disable the 'jar' task
jar.enabled = false
因此,在执行gradle脚本时,它将显示
:jar SKIPPED
如果您希望配置所有子项目,则可以将以下内容添加到根build.gradle
subprojects {
// Disable the 'jar' task
tasks.jar.enabled = false
}