首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gradle 7创建一个胖罐子

Gradle 7创建一个胖罐子
EN

Stack Overflow用户
提问于 2021-05-21 06:10:27
回答 1查看 1.5K关注 0票数 3

我需要从不包含作用域compileOnly中的依赖项的依赖项创建一个fat jar

代码语言:javascript
复制
dependencies {
   api 'org.slf4j:slf4j-api:1.7.26' // this must be in the jar
   compileOnly 'it.unimi.dsi:fastutil:8.2.1' // this must not be in the jar

    jar {
        from {
            configurations.compileClasspath.findAll { it.name.endsWith('jar') }.collect { zipTree(it) }
        }
    }
}

在构建项目时,这两个依赖项都存在于最终的jar文件中。我该怎么从胖罐子里排除fastutil呢?

我试着用runtimeOnly

代码语言:javascript
复制
runtimeOnly 'it.unimi.dsi:fastutil:8.2.1' // this must not be in the jar

但这会导致fastutil在编译时无法解析。

我运行的是Java16和Gradle 7.0.2。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-21 16:58:21

使用configurations.runtimeClasspath而不是configurations.compileClasspathcompileClasspath包含编译所需的所有库,因此也包括fastutil。另一方面,runtimeClasspath从configuration compileOnly中排除了库。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67628583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档