我需要从springBoots bootJar gradle任务中排除特定的依赖关系(类似于maven中提供的作用域)。

我尝试了自定义配置,但dependency-which-should-not-be-in-bootJar仍包含在生成的jar中。

configurations{
    provided
    implementation.extendsFrom provided
}

dependencies {
    // ...
    provided "dependency-which-should-not-be-in-bootJar"
}

jar {
    from configurations.compile - configurations.provided
    from configurations.runtime
}

bootJar {
    from configurations.compile - configurations.provided
    from configurations.runtime
    launchScript()
}

最佳答案

您实际上可以使用gradt> 2.12为依赖项使用 compileOnly

dependencies {
     // ...
     compileOnly "dependency-which-should-not-be-in-bootJar"
}

您仍然可以在测试和运行时使用它,但是在最终构建的jar中则没有。

10-07 22:18