首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Quarkus Gradle插件:覆盖来自依赖库的重复文件条目

基础概念

Quarkus 是一个用于构建高效、轻量级 Java 应用程序的框架,特别适用于 Kubernetes 和云原生环境。Gradle 是一个流行的构建自动化工具,广泛用于 Java 开发。Quarkus Gradle 插件允许开发者使用 Gradle 构建 Quarkus 应用程序。

相关优势

  1. 高效构建:Gradle 提供了高效的构建缓存和增量构建功能,可以显著加快构建速度。
  2. 灵活性:Gradle 的插件系统允许开发者自定义构建过程,满足各种需求。
  3. 集成良好:Quarkus Gradle 插件与 Quarkus 框架紧密集成,提供了丰富的任务和配置选项。

类型与应用场景

  • 类型:Quarkus Gradle 插件主要用于构建、测试和部署 Quarkus 应用程序。
  • 应用场景:适用于需要快速开发和部署的微服务架构,特别是在 Kubernetes 环境中。

遇到的问题及解决方法

问题描述

在构建过程中,可能会遇到来自依赖库的重复文件条目问题。这通常是由于多个依赖库包含相同的资源文件,导致构建工具无法确定使用哪个版本。

原因分析

  1. 依赖冲突:不同的库可能依赖于同一个库的不同版本,导致文件重复。
  2. 资源文件冲突:多个库可能包含相同的资源文件(如配置文件、静态资源等)。

解决方法

  1. 使用 Gradle 的 ResolutionStrategy: 可以通过配置 Gradle 的 ResolutionStrategy 来强制指定某个依赖的版本,从而避免冲突。
  2. 使用 Gradle 的 ResolutionStrategy: 可以通过配置 Gradle 的 ResolutionStrategy 来强制指定某个依赖的版本,从而避免冲突。
  3. 排除特定依赖: 可以在依赖声明中排除特定的传递依赖。
  4. 排除特定依赖: 可以在依赖声明中排除特定的传递依赖。
  5. 自定义资源合并策略: 对于资源文件冲突,可以使用 Gradle 的 processResources 任务来自定义资源合并策略。
  6. 自定义资源合并策略: 对于资源文件冲突,可以使用 Gradle 的 processResources 任务来自定义资源合并策略。

示例代码

以下是一个完整的 build.gradle 文件示例,展示了如何处理依赖冲突和资源文件冲突:

代码语言:txt
复制
plugins {
    id 'java'
    id 'io.quarkus' version '2.13.7.Final'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}")
    implementation 'io.quarkus:quarkus-resteasy'
    implementation 'org.example:library:1.0.0' {
        exclude group: 'org.unwanted', module: 'unwanted-library'
    }
}

configurations.all {
    resolutionStrategy {
        force 'org.example:library:1.0.0'
    }
}

processResources {
    duplicatesStrategy = DuplicatesStrategy.INCLUDE
    from('src/main/resources') {
        include '**/*.properties'
        expand(project.properties)
    }
}

通过上述配置,可以有效解决来自依赖库的重复文件条目问题,确保构建过程的顺利进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Android Gradle 插件】Gradle 依赖管理 ⑨ ( implementation project 导入依赖库 Module | 导入aar文件作为依赖 | 先配置仓库再导入依赖 )

文章目录 一、implementation project 引入 Android Library 类型的 Module 作为依赖库 二、引入 aar 文件作为依赖 Android Plugin DSL...配置关联 : 【Android Gradle 插件】Gradle 依赖管理 ① ( org.gradle.api.Project 配置 | Android Gradle 插件配置与 Gradle 配置关联.../javadoc/org/gradle/api/Project.html 引入 aar 文件作为依赖 , 需要为该 aar 文件指定一个仓库 , 然后才能使用该依赖库 ; 先准备一个 aar 文件 ,..., 作为示例依赖库 ; 这是 SDK 自带的 aar 文件 , 每个 SDK 都有该文件 ; 将 percent-22.2.0.aar 文件拷贝到 app/libs 目录下 ; 在 build.gradle...包依赖 com.android.support 组下的 support-v4 函数库 , 版本号为 22.2.0 ; <?

1.5K20

Java 近期新闻:Gradle 8.0、Maven、Payara 平台、Piranha、Spring Framework

Quarkus 扩展的地方;当 project.build.directory 属性被 profile 覆盖时,对 quarkus:dev 的修复。...JUnit 5;如果 selectOne 属性没有选中的条目,则显示警告;以及更新 WebConfigParamsLogger 类中的日志。...否则,5.3.1 版将由依赖升级组成,包括:Micronaut 3.8.4、Grails Gradle Plugin 5.3.0、com.netflix.nebula:gradle-extra-configurations-plugin...在 GA 发布后不久,紧随其后的补丁版本 Gradle 8.0.1 对如下问题进行了修复:以文档形式记录了 Scala 插件与工具链的集成以及 target 标记的问题;在没有事先警告和废弃通知的情况下删除了...文件中的 debug 模块重新定位到 test 目录中;引入新的静态工具类 WarFileExtractor,用于提取 WAR 文件。

1.7K30
  • Java 近期新闻:更多的 Log4Shell 声明,Spring 和 Quarkus 更新,值对象相关的新 JEP

    Quarkus Quarkus 2.5.4.Final 是 一个维护版本,提供了对 Jackson 2.12.6 的依赖升级,并修复了 Jackson Databind 中可能出现的 拒绝服务(Dos...UBI Micro 的 Docker 镜像,可用于本地可执行文件。...该版本不包含来自 Quarkus 2.5.4.Final 的修复内容,但 Quarkus 2.5.4.Final 的修复内容包含在了 Quarkus 2.6.1.Final 中。...Quarkus 2.6.1.Final 是 2021 年的 最后一个维护版本,包括了 Quarkus 2.5.4.Final 的所有修复和一些依赖项升级。...这个最新的版本对 Gradle 插件进行了修复,即:如果缺少类路径条目,则会放松资源检测机制;一个与自定义二进制文件相关的合适的原生推理任务,即除main二进制文件和test二进制文件之外的二进制文件;

    1.9K20

    Java 近期新闻:JDK 22、GraalVM for JDK 22、JDK 23 发布时间表、JMC 9.0

    该 JEP 提议进行第二轮预览,以获取来自之前一轮预览的反馈,即 在 JDK 22 中发布的 JEP 457(类文件 API (预览))。该特性提供用于解析、生成和转换 Java 类文件的 API。...Goetz 将 ASM 描述为“一个带有大量遗留负担的老代码库”,并提供了背景信息,说明该提议将如何发展并最终取代 ASM。...Spring Shell 3.2.3 和 3.1.10 已发布,其中包含了一些显著变化,例如:解决了由于重复的帮助参数导致的非交互式测试示例失败;新增了一个类,SpringSigningPlugin,用于签名快照版本...的dismiss404替代了已弃用的decode404属性;添加了 Gradle 的 Cucumber 约定插件;生成使用 Gradle 约定插件的初始文件。...2024 年将发布的新特性包括:OpenTelemetry 插件;基于 gRPC 的服务;在 Ktor 3.0.0 中迁移到 Kotlinx-io,一个提供基本 I/O 原语的 Kotlin 多平台库;

    20810

    Java 近期新闻:JDK 21 序列集合、JDK 20 向量 API、Gen ZGC、Hilla 2.0

    要了解关于这个版本的更多细节,请查看发布说明。 JDK 21 JDK 21 的早期访问构建Build 13 也于上周发布,其中包括来自 Build 12 的更新,该更新修复了各 问题。...Quarkus Quarkus 3.0.0 的第 5 个(也是最后一个)Alpha 版本 发布,支持:Hibernate ORM 6.0 和StatelessSession接口;新的 Dev UI;Gradle...Quarkus 2.16.14.Final 是第 4 个维护版本,带来了一些显著的改进,例如:传播 Quarkus 相关的故障安全系统属性;当服务器响应是 204 No Content 时,从 REST...Jarviz Andres Almiray 面向 Java 社区发布了 Jarviz(一个新的 JAR 文件分析工具) 0.3.0 版本。...这个新版本修复了一些 Bug,并提供了一些新特性,包括:新命令extract,用于按名称或模式提取 JAR 条目;新命令validate,用于验证包名;新的命令行选项--output-format ,用于指定所需的输出

    1.7K20

    【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ① ( 组件化简介 | 创建组件化应用 | 依赖库模块 应用模块 切换设置 )

    文章目录 一、组件化简介 二、创建组件化应用 1、创建工程及壳应用模块 2、创建业务组件模块 3、创建功能组件模块 4、创建基础组件模块 三、依赖库模块 / 应用模块 切换设置 1、build.gradle...: 依赖库模块 / 应用模块 互相切换 , 实现具体的功能 , 如数据库访问 , 网络访问 , 播放器 , UI 组件 等 ; 基础组件模块 : 依赖库模块 , 基础的工具类 , 依赖库 等 ; 特别注意...: 创建 依赖库模块 / 应用模块 互相切换的模块 , 建议创建时创建为 应用模块 , 因为依赖库模块比应用模块少很多文件 , 都需要自己补齐 ; 分层结构 , 可以很好的避免 , 代码全部写在一个模块中..." 选项 , 选择创建 " Android Library " 类型的 Module 模块 , 作为 基础模块 ; 三、依赖库模块 / 应用模块 切换设置 ---- 在 Gradle 构建脚本中...构建 , 该模块就会变为 依赖库模块 ( " Android Library " 类型的 Module 模块 ) ; 此时这个 依赖库模块 才可以作为依赖库使用 ; 2、AndroidManifest.xml

    1.1K20

    Java 近期新闻:字符串模板、Quarkus、Open Liberty、PrimeFaces、JobRunr、Devnexus

    对于 JDK 21,我们鼓励开发人员通过 Java Bug 数据库报告 Bug。...Quarkus Quarkus 3.0.0 的第 2 个候选版本提供的新特性包括:Gradle 任务quarkusUpdate,用于将 Quarkus 升级到新版本;Dev UI 2 现在默认通过/q...Quarkus 2.16.6.Final 是第 6 个维护版本,带来了一些重要的更改,如:如果 ID 令牌验证失败,则删除会话 cookie;允许在 REST 客户端请求体中使用null;在响应式消息传递中支持可重复的...Gradle Gradle 8.1 的第 3 个候选版本带来了一些新特性,包括:对配置缓存的持续改进;支持依赖关系验证;改进 Groovy 闭包的错误报告;支持 Java lambdas;支持使用 JDK...来自 Java 社区的演讲者做了研讨和演讲,主题涉及:Jakarta EE、Java 平台、Core Java、架构、云基础设施和安全。

    1.6K30

    IDEA自带插件禁用,减少内存占用

    名称 描述 Ant 提供与Ant构建工具的集成 Gradle 提供与Gradle的集成,以实现软件包的构建、测试、发布和部署的自动化 Gradle Extension 提供了额外的Gradle集成功能:...IntelliJ Profiler支持渐变运行配置 Maven 提供Maven支持 Maven Extension 提供了对Web、JavaEE和依赖关系分析图的Maven支持 java的代码覆盖率插件...名称 描述 Code Coverage for Java 收集并显示Java的覆盖率信息 4、数据库 这个要保留,就算你不用idea创建数据库连接也要保留,原因下面讲到另一个插件时会说。...名称 描述 Database Tools and SQL 用于基于idea的数据库工具和SQL插件,允许查询、创建和管理数据库,并提供完整的SQL语言支持 5、部署工具 这一块的插件我全部禁用了,因为用不到...禁用 Package Checker 检查Gradle、Maven、NPM和PyPI依赖项是否存在已知漏洞 Package Search 查找和管理JVM和Kotlin多平台项目的依赖关系 Performance

    28510

    Java 近期新闻:Classfile API 草案、Spring Boot、GlassFish、Reactor 项目

    该 JEP 提议提供一个 API,用于解析、生成和转换 Java 类文件。它最初将在 JDK 中作为 ASM 的内部替代品,并计划作为一个公共 API 开放。...对于 JDK 19 和 JDK 20,我们鼓励开发者通过 Java Bug 数据库报告缺陷。...这是一个 GralVM 项目,提供可以与 GralVM Native Image 互操作的插件。...这个最新版本提供了:Mockito 和 Byte Buddy 的支持文档;防止在没有提供测试列表的情况下构建失败;在 Gradle 插件 native-image 中支持不同的代理模式,这是一个破坏性的变化...Quarkus 红帽公司发布了 Quarkus 2.10.0.Final,新特性包括:来自 Loom 项目的有关虚拟线程(JEP 425)的初步工作;在 GraphQL 扩展中支持非阻塞工作负载;依赖升级到

    1.6K10

    简洁、高效、灵活:探索 Spring 同级别的编程框架

    基于 Spring Boot 构建的控制器层。 具有数百个插件的插件系统。 可以使用灵活的配置创建 AngularJS、React等程序 。 基于 Gradle 交互式命令行构建系统和环境。...Quarkus是一个为GraalVM和HotSpot定制的Kubernetes原生Java框架,由最佳的Java库和标准精心打造。...最好的类库和标准:Quarkus提供了一个有凝聚力的、有趣的、全栈式的框架,它利用了各类不断增长的50多个你喜欢和使用的最好的库。所有这些都在一个标准的主干上。...,该框架可自动编译和重新装载已改变的源文件。...它由Yammer开发,增强了基于JVM的后端服务,集合了来自Java生态系统中的稳定和成熟的程序库,组成了简单、轻量级的程序包,使得用户可以专注于把事情做好。

    85050

    IDEA 2024.1到底更新啥有用的?

    编辑器中的粘性行 在编辑器中引入了粘性行,旨在简化大文件的处理和新代码库的探索。 滚动时,此功能会将类或方法的开头等关键结构元素固定到编辑器顶部。...对 Maven Shade 插件的重命名工作流的支持 在 IntelliJ IDEA 2024.1 版本中,我们添加了备受期待的对 Maven Shade 插件重命名功能的支持。...从快速文档弹出窗口直接访问源文件 快速文档弹出窗口现在提供了一种下载源代码的简单方式。 现在,查看库或依赖项的文档并需要访问其源代码时,按 F1 即可。...Gradle 版本支持更新 从这个版本开始,IntelliJ IDEA 不再支持使用低于 Gradle 版本 4.5 的项目,并且 IDE 不会对带有不支持的 Gradle 版本的项目执行 Gradle...PreviousNext Quarkus 更新 Ultimate 我们为 Quarkus 运行配置引入了一个新的设置编辑器。

    20800

    Java 近期新闻:JDK 22 的 JEP、Spring Shell、Quarkus、Apache Camel、JDKMon

    这两个版本都解决了 CVE-2023-5720 的问题,在这种漏洞情况下,攻击者可以通过应用程序访问构建系统中的潜在敏感信息,因为在 Quarkus 中发现了一个缺陷,它无法正确清理使用 Gradle...插件创建的构件。...有关该版本的更多详细信息,请参阅发布说明。 为了与 Quarkus 保持一致,Camel Quarkus 3.2.2 也已发布,但没有任何记录在案的重大修复、依赖升级或改进。...这个新版本由 Azul 的首席工程师 Gerrit Grunwald 创建,提供了依赖项升级、Gradle 8.4 的构建升级,以及一些新功能:能够从列表中选择 JEP、JSR 或 OpenJDK 项目...Gradle Gradle 8.5.0 发布了第一个候选版本,包括:完全支持在 JDK 21 上编译、测试和运行;对 Kotlin DSL 的改进,包括在预编译的 Kotlin 脚本插件中更快地首次使用和版本目录支持

    32220

    探索 IntelliJ IDEA 2024.1最新变化:全面升级助力编码效率

    Maven 工具窗口中的 *Maven* 仓库 Gradle 版本支持更新 运行/调试 多语句的内联断点 调用堆栈中的折叠库调用 条件语句覆盖 代码覆盖率设置移至主 IDE 设置 JaCoCo 测试覆盖率报告的简化导入...从快速文档弹出窗口直接访问源文件 快速文档弹出窗口现在提供了一种下载源代码的简单方式。 现在,查看库或依赖项的文档并需要访问其源代码时,按 F1 即可。...Gradle 版本支持更新 从这个版本开始,IntelliJ IDEA 不再支持使用低于 Gradle 版本 4.5 的项目,并且 IDE 不会对带有不支持的 Gradle 版本的项目执行 Gradle...在使用 Azure Pipelines 的现实文件中,架构检查速度现在提高了 10 倍。 Quarkus 更新 Ultimate 我们为 Quarkus 运行配置引入了一个新的设置编辑器。...新增的 AI 助手插件、改进的代码覆盖工具和针对多种编程语言的高级功能,确保了开发者可以在更短的时间内达到更好的开发效果。

    3.8K20

    Java 近期新闻:JDK 19 和 Jakarta EE 10 发布、模板字符串、Payara 平台

    接口的实现,以替代覆盖默认接口;在 ClientSecretAuthenticationProvider 类中检查验证客户端秘密是否已经过期。...Quarkus Quarkus 2.12.3.Final 发布,提供对 Hibernate Search 6.1.7.Final 版本的依赖更新;修复了 Funqy Knative 运行时和 MongoDB...Micronaut Micronaut 基金会发布了 Micronaut 框架 3.7.0,对多个模块进行了优化,如 Micronaut for Spring、Micronaut Gradle 插件、...该新版本发布提供的优化有:参数文件改为存储在 Gradle 插件下的 build 目录,或 Maven 插件下的 target 目录中,以处理 GralVM 在 Windows 中使用绝对路径问题的各种临时解决方案...Failsafe Failsafe 是一款可以在 Java 8+ 中处理故障的轻量级、零依赖的库,目前已发布了 3.3.0 版本,其中对 API 的更新有:ExecutionContext 接口定义的

    1.6K20

    Java 近期新闻:JDK 22 RC2、Spring 生态系统、Payara Platform

    的问题(如果另一个 Maven 插件已经创建了文件系统对象);修复了在 Gradle 构建文件中禁用元数据存储库的 Kotlin 代码片段;添加了用于构建时初始化的 JUnit 5 类型,使其成为镜像堆的一部分...Quarkus Red Hat 发布 Quarkus 3.7.4 第四个维护版本,解决了一些重要的问题,例如:使用 @VirtualThreadUnit 注解会导致性能下降;OIDC 服务器错误地显示为不可用...建议使用 Gradle 的开发者将其应用程序更新到 Micronaut Gradle Plugins 4.3.3。有关此版本的更多详细信息,请参阅发行说明。...Apache 软件基金会 Apache Camel 4.4.0 版本包含了 bug 修复、依赖项升级和新特性,例如:为 Camel JBang 提供新插件,用于模块化功能;Apache Camel 的新...和 Weaviate 数据库的新模块。

    16110

    Java 近期新闻:JDK 21 发布计划、Payara 平台、JBang、JHipster、WildFly

    ;使用 SmallRye BeanBag 初始化 Maven RepositorySystem接口以兼容 Maven 3.9;一种面向 Quarkus CLI 的新的插件机制。...Apache Camel 3.20.3发布,提供了 Bug 修复、依赖项升级和新特性 / 改进,包括:为具有连接验证扩展的组件添加健康检查(camel-health);camel-jbang组件中的用户配置文件...JHipster JHipster 团队发布了 JHipster Quarkus Blueprint 的 2.0.0 版本,其中有一些显著的变化,包括:修复生产配置文件的 OIDC 设置;将 Blueprint...JHipster 团队还 发布 了 JHipster Lite 0.30.0,带来了 Bug 修复、依赖项升级和功能增强,包括:删除重复的 JSON Web Token 依赖;ApplicationAuthorizations...Gradle Gradle 8.1 的 第 2 个候选版本 提供了以下新特性:对 配置缓存 的持续改进;支持 依赖关系验证;改进 Groovy 闭包的错误报告;支持 Java lambdas;支持使用

    2.1K20

    微服务架构之Spring Boot(十六)

    20.2自动重启 只要类路径上的文件发生更改,使用 spring-boot-devtools 的应用程序就会自动重新启动。...在IDE中工作时,这可能是一个有用的功能,因为 它为代码更改提供了非常快速的反馈循环。默认情况下,将监视类路径上指向文件夹的任何条目的更改。...只要启用了分叉,您也可以使用支持的构建插件(Maven和Gradle)启动应用程序,因为DevTools需要一个独立的应用程序类加 载器才能正常运行。...其他devtools功能(例如LiveReload和属性覆盖)仍然可以使用。 DevTools依赖于应用程序上下文的关闭钩子来在重启期间关闭它。...不更改的类(例如,来自第三方jar的类)将加载到基 类加载器中。您正在积极开发的类 将加载到重新启动的 类加载器中。重新启动应用程序时,将重新启动重新启动的类加载器并创建一个新的类加载器。

    48410

    Java 近期新闻:JDK 19 进入 Rampdown 阶段,JDK 20 专家组,Eclipse Mojarra 4.0

    这意味着主线源代码库已经分支到了 JDK 的稳定代码库,并且不会再为 JDK 19 添加额外的 JEP 了。...Quarkus 在通往 Quarkus 2.10.0 的道路上,红帽(Red Hat)已提供了第一个候选版本,该版本具有如下的新特性:虚拟线程支持;能够为第三方数据库添加额外的 Hibernate 方言能力...Quarkus 2.10.0.CR1 还包含了对 Smallrye Reactive Messaging 3.16.0 的依赖项升级,并引入了 Quiltflower 反编译器。...4.7.0、Find Security Bugs  1.12.0( findsecbugs-plugin )、Apache RAT (发布审核工具)Gradle Plugin 0.7.1( creadur-rat-gradle...JNation 会议 JNation 会议已于上周在葡萄牙科英布拉的圣弗朗西斯科修道院(Convento San Francisco)举行,来自 Java 社区的许多演讲者就 Quarkus、DevOps

    72420
    领券