有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java什么在覆盖我的Jacoco gradle依赖项的ASM依赖项

我正在尝试使用Gradle构建我的项目。在运行Jacoco coverage report时,它给了我以下错误:

Caused by: java.io.IOException: Error while analyzing XXX.class.
        at org.jacoco.core.analysis.Analyzer.analyzerError(Analyzer.java:162)
        at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:134)
        at org.jacoco.core.analysis.Analyzer.analyzeClass(Analyzer.java:157)
        at org.jacoco.core.analysis.Analyzer.analyzeAll(Analyzer.java:193)
        at org.jacoco.ant.ReportTask.createBundle(ReportTask.java:573)
        at org.jacoco.ant.ReportTask.createReport(ReportTask.java:545)
        at org.jacoco.ant.ReportTask.execute(ReportTask.java:496)
        ... 174 more
Caused by: java.lang.IllegalArgumentException
        at org.objectweb.asm.ClassVisitor.<init>(ClassVisitor.java:70)
        at org.jacoco.core.internal.flow.ClassProbesVisitor.<init>(ClassProbesVisitor.java:38)
        at org.jacoco.core.internal.flow.ClassProbesVisitor.<init>(ClassProbesVisitor.java:28)
        at org.jacoco.core.internal.analysis.ClassAnalyzer.<init>(ClassAnalyzer.java:59)
        at org.jacoco.core.analysis.Analyzer$1.<init>(Analyzer.java:97)

我与其他一些也集成了Jacoco但没有这个问题的项目进行了比较,结果发现我的项目对asm有一个可传递的依赖性。在我对当前项目运行./gradlew dependency之后,我注意到有一个导入的ASM依赖项迫使其版本从8.0.1->;7.0.

jacocoAnt - The Jacoco ant tasks to use to get execute Gradle tasks.
\--- org.jacoco:org.jacoco.ant:0.8.6
     +--- org.jacoco:org.jacoco.core:0.8.6
     |    +--- org.ow2.asm:asm:8.0.1 -> 7.0
     |    +--- org.ow2.asm:asm-commons:8.0.1 -> 7.0
     |    |    +--- org.ow2.asm:asm:7.0
     |    |    +--- org.ow2.asm:asm-tree:7.0
     |    |    |    \--- org.ow2.asm:asm:7.0
     |    |    \--- org.ow2.asm:asm-analysis:7.0
     |    |         \--- org.ow2.asm:asm-tree:7.0 (*)
     |    \--- org.ow2.asm:asm-tree:8.0.1 -> 7.0 (*)
     +--- org.jacoco:org.jacoco.report:0.8.6
     |    \--- org.jacoco:org.jacoco.core:0.8.6 (*)
     \--- org.jacoco:org.jacoco.agent:0.8.6

没有其他软件包可以过渡地依赖ASM,这是唯一的地方。这很奇怪,因为我没有强制ASM版本的gradle resolutionStrategy。有人能告诉我如何删除强制ASM版本降级吗

请注意,我已经尝试将以下所有内容添加到我的resolutionStrategy中,它仍然解析为7.0版

            force 'org.ow2.asm:asm-analysis:8.0.1'
            force 'org.ow2.asm:asm-tree:8.0.1'
            force 'org.ow2.asm:asm-commons:8.0.1'
            force 'org.ow2.asm:asm:8.0.1

共 (0) 个答案