如何让 gradle 的构建任务生成"regular"罐的影子罐子_而不是_?



(使用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
}

最新更新