gpt4 book ai didi

gradle - 在模块中找到重复的类

转载 作者:行者123 更新时间:2023-12-03 05:31:50 24 4
gpt4 key购买 nike

在模块 jsp-api-2.1-6.1.14.jar (org.mortbay.jetty:jsp-api-2.1:6.1.14) 和 jsp-api-2.1.jar (javax.servlet) 中发现重复的类 javax.el.ArrayELResolver .jsp:jsp-api:2.1)
在模块 jsp-api-2.1-6.1.14.jar (org.mortbay.jetty:jsp-api-2.1:6.1.14) 和 jsp-api-2.1.jar (javax.servlet) 中发现重复的类 javax.el.BeanELResolver .jsp:jsp-api:2.1)
在模块 jsp-api-2.1-6.1.14.jar (org.mortbay.jetty:jsp-api-2.1:6.1.14) 和 jsp-api-2.1.jar (javax) 中发现重复的类 javax.el.BeanELResolver$BeanProperties .servlet.jsp:jsp-api:2.1)
在模块 jsp-api-2.1-6.1.14.jar (org.mortbay.jetty:jsp-api-2.1:6.1.14) 和 jsp-api-2.1.jar (javax .servlet.jsp:jsp-api:2.1)

 build.gradle:
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
//The dependencies below are for a library i'm including after which i get the error
compile "org.bouncycastle:bcprov-jdk15on:1.54"
compile "org.apache.pdfbox:pdfbox:[2.0.15,)"
compile "org.mapdb:mapdb:3.0.4"
compile "com.google.guava:guava:19.0"
compile "com.carrotsearch:java-sizeof:0.0.5"
compile "org.apache.hadoop:hadoop-common:2.7.1"
compile "com.amazonaws:aws-java-sdk:1.11.19"
compile "org.apache.hadoop:hadoop-core:1.2.1"
compile "org.apache.lucene:lucene-analyzers-common:6.1.0"
compile "org.apache.poi:poi-scratchpad:3.15-beta1"
compile "org.apache.poi:poi:3.15-beta1"
compile "org.apache.poi:poi-ooxml:3.15-beta1"

我已经在堆栈溢出的其他线程上阅读了有关在 build.gradle 中使用 exclude:group 的信息,只是我似乎做错了什么。有人可以告诉我(i)如何添加排除语句来修复上述错误,而不是给出一些通用示例(ii)我将如何手动删除导致重复的模块? (我尝试从 gradle 缓存文件夹中删除它们,甚至删除了 .gradle 文件夹,但它一直在重建它)。任何建议将不胜感激

最佳答案

首先编译应该替换为实现,因为它已被弃用。 (i) 这个链接提供了一个很好的解释:https://discuss.gradle.org/t/how-to-exclude-transitive-dependency/2119/2
(ii)我进行了很多搜索以找到一种可行的方法来执行此操作,并且大多数建议的方法都失败了。实际起作用的是以下示例:
注意:程序类的重复定义
问题:hadoop-common 和 hadoop-core 共享了许多导致冲突的公共(public)类
解决方案:
我设法通过手动删除 jar 文件中重复的 .class 文件来解决它。 (IE。
(i) 将扩展名从 jar 更改为 zip
(ii) 提取它
(iii) 删除 .class 文件或整个文件夹(如果它包含所有重复文件)
(iv) 将扩展名从 zip 改回 jar
注意不要使用 Winrar 提取 jar 文件并尝试将它们压缩回来,因为某些奇怪的原因不起作用。我不得不
导航到 Gradle 缓存:C->Users-> 用户名 -> .gradle -> 缓存 -> modules-2 -> files-2 -> org.apache.hadoop ->
找到 hadoop-common 或 hadoop-core 并应用上述删除具有重复类的文件夹

关于gradle - 在模块中找到重复的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58946207/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com