Maven仓库提供的jar文件不包含类文件

Posted

技术标签:

【中文标题】Maven仓库提供的jar文件不包含类文件【英文标题】:The jar file provided by Maven repository does not include class files 【发布时间】:2021-09-23 19:17:24 【问题描述】:

我需要使用 Spotbugs 扩展库之一提供的BaseDetectorTest

我添加了来自 (FindBugs Test Utility) 的 maven 依赖项

但它不包含 BaseDetectorTest 类文件(一旦 Maven 更新,jar 文件将添加到外部库 - 但不包含类文件)。

我想知道为什么会这样。

我的猜测是“仓库提供的Jar文件还在开发中”

你能教我怎么解决吗?

【问题讨论】:

【参考方案1】:

find-sec-bugs/findsecbugs-test-util/src/test/java/com/h3xstream/findbugs/test/BaseDetectorTest.java 是一个测试类。 .../src/test/......Test.java 是这方面的指标。测试类不包含在项目的 JAR 中(由 Maven JAR Plugin 的 jar:jar 目标,这是 package 阶段的默认绑定),但在由 jar:test-jar 目标创建的项目的 ...-tests.jar 中.

    在MvnRepository 上选择一个版本标签,例如1.9.0,然后是 Files jar (2 KB) View All 以找到 ...-tests.jar。使用它:
<dependency>
  <groupId>com.h3xstream.findsecbugs</groupId>
  <artifactId>findbugs-test-util</artifactId>
  <version>1.9.0</version>
  <classifier>tests</classifier>
</dependency>
    在 Maven Central 上,您可以获得更高版本 (1.11.0),选择它,然后选择 Browse ? 找到它。使用它:
<dependency>
  <groupId>com.h3xstream.findsecbugs</groupId>
  <artifactId>findsecbugs-test-util</artifactId>
  <version>1.11.0</version>
  <classifier>tests</classifier>
</dependency>

【讨论】:

感谢您的解释。我解决了。我也可以使用测试类。谢谢。 @YoochulKim 如果您对自己问题的回答令人满意,您也可以接受。见Why is voting important? 和What does it mean when an answer is "accepted"?

以上是关于Maven仓库提供的jar文件不包含类文件的主要内容,如果未能解决你的问题,请参考以下文章

Maven仓库

MAVEN删除本地jar包记录

如何把一个jar包打包到本地maven仓库

maven - 一键删除maven仓库无效jar包工具

java如何通过maven查到所有的java类和方法

Maven pom.xml中添加指定的中央仓库