我正在尝试在我的 java 项目中使用 maven 设置集成测试阶段。我对 jboss 没有任何依赖关系(jboss-common-core 除外,它被 hibernate-entitymanager 传递地拉取)。我对故障安全插件的设置是:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.12</version>
<executions>
<execution>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
当我运行mvn integration-test -Dmaven.failsafe.debug
并连接我的调试器并进行评估时System.getProperty("java.class.path")
,我在类路径中看到了一个 jbossall-client.jar!当我在 IntellJ 122.327 中本地运行测试时,类路径不包含 jbossall-client.jar。我一直在试图弄清楚为什么这个 jar 会被添加到类路径中。以前有没有其他人经历过这种情况?提前致谢。
更新:我尝试从我的 .m2/repository 目录中删除 jbossall-client 并仅运行 clean 和 package 阶段,看起来我的项目确实对此有依赖,因为这个 jar 在运行包时被下载。仍然很奇怪,因为我的 pom 对这个 jar 没有直接或传递的依赖。此外,当我尝试通过添加配置使用故障安全插件运行时将其排除在类路径中时
<classpathDependencyExcludes>org.jboss.client:jbossall-client</classpathDependencyExcludes>
我收到以下错误:
Unable to parse configuration of mojo org.apache.maven.plugins:maven-failsafe-plugin:2.12:integration-test
for parameter classpathDependencyExcludes: Cannot assign configuration entry 'classpathDependencyExcludes'
with value 'org.jboss.client:jbossall-client' of type java.lang.String
to property of type java.util.List -> [Help 1]
故障安全插件网站声明该标签应该具有我groupId:artifactId
所拥有的价值。任何想法为什么这会失败?
第二次更新:刚刚意识到故障安全插件网页中有一个错字。在他们的例子中:
<classpathDependencyExcludes>
<classpathDependencyExcludes>org.apache.commons:commons-email</classpathDependencyExcludes>
</classpathDependencyExcludes>
真的应该
<classpathDependencyExcludes>
<classpathDependencyExclude>org.apache.commons:commons-email</classpathDependencyExclude>
</classpathDependencyExcludes>
现在我可以通过解析错误,但是 jbossall-client 仍然被加载到类路径中。