- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Jenkins 中运行测试项目时出现以下错误
Caused by: java.lang.LinkageError: loader 'bootstrap' attempted duplicate class definition for java.lang.$JaCoCo. (java.lang.$JaCoCo is in module java.base of loader 'bootstrap')
Jacoco 在父 pom 和当前测试 pom 中定义了不同的目标。
parent-pom.xml
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>validate-headless</id>
<phase>validate</phase>
<goals>
<goal>prepare-agent</goal>
</goals>
<configuration>
<skip>true</skip>
<propertyName>failsafe.argLine</propertyName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
测试项目-pom.xml
<properties>
<maven.repo.local>${user.home}/.m2/repository</maven.repo.local>
<itCoverageAgent>-javaagent:${maven.repo.local}/org/jacoco/org.jacoco.agent/0.8.5/org.jacoco.agent-0.8.5-runtime.jar=destfile=${basedir}/target/jacoco-it.exec</itCoverageAgent>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<argLine>${failsafe.argLine} ${itCoverageAgent}</argLine>
<testFailureIgnore>true</testFailureIgnore>
<reuseForks>true</reuseForks>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>coverage</id>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<executions>
<execution>
<id>prepare-agent-unit</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>prepare-agent-integration</id>
<goals>
<goal>prepare-agent-integration</goal>
</goals>
<configuration>
<propertyName>itCoverageAgent</propertyName>
</configuration>
</execution>
<execution>
<id>report-unit</id>
<goals>
<goal>report</goal>
</goals>
</execution>
<execution>
<id>report-integration</id>
<goals>
<goal>report-integration</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
如果${itCoverageAgent}
从 <argLine>
中删除在 test-project-pom.xml 它工作正常。我们如何为同一版本的 Jacoco 执行来自 parent-pom 和 test-project-pom 的不同目标?
最佳答案
当您在运行时失败并返回 java.lang.LinkageError
在使用 Maven 构建之后,通常表明同一依赖项的不同版本正在加载到 JVM 中。当 POM 中的其他依赖条目之一对同一 Java 库或 Java 类的不同版本具有传递依赖时,就会出现这种类型的冲突。
您可以使用 Maven Dependency Plugin通过在项目的根目录下运行以下命令来生成依赖项及其所有传递依赖项的详细概述:
mvn dependency:tree
输出非常有用,但它是一个详尽的依赖列表,有时最终会成为一件好事。如果您的项目是这样,则有一个 includes
。可用于过滤输出的选项,以便它专注于特定的依赖项或依赖项组。例如,您可以使用它如下,带星号 ('*')
通配符只关注 Jacoco
依赖项:
mvn dependency:tree -Dincludes=org.jacoco.*
includes
选项允许多个过滤器子句,以逗号分隔 (',')
, 并且还支持多级 Maven 依赖过滤, 使用如下格式结构:
[groupId]:[artifactId]:[type]:[version]
您可以在 Maven 依赖插件的 Filtering the dependency tree web page 上找到更多引用资料和文档。 .
如果您确实发现有导致冲突的传递依赖项,通常可以通过添加 <exclusions>
来解决该问题。导致问题的依赖项定义中的条目:
<dependency>
<groupId>org.open.source.library</groupId>
<artifactId>problematic-artifact</artifactId>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.jacoco</groupId>
<artifactId>conflicting-transitive-artifact</artifactId>
</exclusion>
</exclusions>
</dependency>
这会维护您想要的依赖关系,但不包括解决造成冲突的传递依赖关系,并将解决运行时链接错误。
实际上,我不认为您的根本问题是依赖版本不匹配;我认为您的问题是构建插件配置冲突。
Maven 中的默认构建插件配置处理会自动将父 pom 中定义的所有插件配置传播到子 pom - 这通常正是您想要的。
但在您的情况下,它会破坏您的构建。然而,有一种简单的方法可以让您声明本质上是排除的内容——只是您想要排除构建插件配置继承而不是构建依赖项。您可以使用以下命令关闭常规插件配置传播:<inherited>
标记如下所示:
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.5</version>
<inherited>false</inherited>
<!-- Additional build lifecycle goals,
plugin configuration entries, and
plugin execution definitions: ...
-->
</plugin>
</plugins
</build>
关于java.lang.LinkageError : loader 'bootstrap' attempted duplicate class definition for java. lang.$JaCoCo 与 Java11 和 Jacoco 0.8.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72328470/
我正在使用 webpack 开始我的学习之路,但遇到了一个问题,我认为这是由 extract-loader 引起的。 .当webpack抓取我的HTML文件时,似乎无法正常编译,在使用import.m
我正在使用 tomcat 8,在 tomcat-home/config/catalina.properties ,有关于的部分 common.loader, server.loader and sha
在使用 import 语句时,我对区分 sass-loader 和 css-loader 有点困惑。据我所知,css loader resolve import statment(@import) 和
我的 webpack 加载器数组中有这个加载器: { test: /\.scss$/, exclude: /node_modules/, loaders: ExtractTextPlugin('sty
我对 url-loader 、 file-loader 和 image-loader 感到很困惑。谁能解释一下 url-loader 、 file-loader 和 image-loader 的区别是
我有 page.css @imports index.css。 page.css 和 index.css 都有 display: flex Webpack.config.js 包含: module:
我在 webpack 中使用生产模式构建的多入口点最终 bundle 中导出的多入口编译 js 文件始终包含加载器内容。如何消除它们以及为什么包含它们? 重现 git clone https://gi
模板加载器找到模板但未加载模板 TemplateDoesNotExist at /cardpayment/ cardpayment.html Request Method: GET Reque
当我尝试运行 gradle tR (tomcatRun) 时出现此错误 A child container failed during start java.util.concurrent.Execu
Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[/projectna
我计划将 Webpack 用于一个项目,并且我正在使用 Html-loader + file-loader 设置我的工作流程,以获取带有图像动态 src 的生产 html 文件,正如 Colt Ste
我有一个巨大的 csv 文件,其中包含数百万条记录,我想使用 python 脚本将它加载到 Netezza 数据库中。我尝试了简单的插入查询,但速度非常非常慢。可以指出一些示例 python 脚本或一
我想将 ts-loader 与 babel-polyfill 一起使用,但不使用 babel-loader。但是当我尝试构建该项目时,我收到了此错误。谁能告诉我我缺少什么。 ERROR in ./sr
下面是我的 webpack.config.js 和 package.json module.exports = { entry: "./entry.js", output: { fi
我在两台不同的 PC 上遇到了一个问题。对于我的项目,我为开发安装了以下依赖项:(webpack webpack-cli @babel/core @babel/preset-env @babel/pr
模板文件保存在app目录下,但渲染时引发TemplateDoesNotExist异常: 模板加载器事后分析如下: Django 尝试按以下顺序加载这些模板: Using loader django.t
PHPUnit 手册说: If you point the PHPUnit command-line test runner to a directory it will look for *Test
我正在开发一个需要 html 的角度应用程序要提取为纯 HTML 文件的文件,同时应检查任何 要求这些图像(作为 Assets )。另外,图片是基于根路径的(所以 /images/something.
我们在 sql 加载器中遇到了问题。我们正在尝试将一个大约 46 亿行(近 340 GB)的数据文件加载到 2 个 oracle 表中,基于一些使用 Sql Loader 的条件。但是在加载了 42
我将 CSS 模块与 webpack css-loader 一起使用,然后将它们与 mini-css-extract-plugin 捆绑在一起。 这是我的配置的样子: { test: /\.c
我是一名优秀的程序员,十分优秀!