我想使用具有以下依赖项的库:
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>annotations</artifactId>
<version>2.0.3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我读到FindBugs用于Java代码的静态分析,所以我虽然没有必要包含在应用程序中.<scope>provided</scope>用一个或用一个<exclusion>...</exclusion>?排除罐子是否安全?
排除它的一个原因是存在针对(L)GPL许可的公司政策.
bar*_*uin 20
是的,您可以安全地排除此库.它仅包含在运行时不需要存在的注释.但是,请注意将它们用于FindBugs分析.
请注意,您还应该列出jsr305.jar,如下所示:
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>annotations</artifactId>
<version>3.0.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
两个JAR都需要使这些注释有效.
查看Maven Central中最新的findbugs版本.
FindBugs是在LGPL下提供的,因此贵公司不应该有任何问题.此外,您只是使用 FindBugs; 你没有开发从FindBugs派生的东西.
理论上,排除 Findbugs 传递依赖应该是完全安全的(如 OP 的澄清评论中所定义)。如果使用正确,Findbugs 应该只在构建库时使用,而不是使用它。很可能有人忘记添加<scope>test</scope>Findbugs 依赖项。
所以 - 继续尝试排除。运行应用程序。您是否遇到类路径错误、与库相关的应用程序功能不起作用,或者在日志中看到似乎由于 Findbugs 不可用而导致的消息?如果答案是肯定的,我个人会重新考虑在我的应用程序中使用这个特定的库,并尝试寻找替代方案。
另外,祝贺您预先进行了类路径检查!作为一般实践,每次在应用程序中包含库时执行您所做的操作是一个好主意:添加库,然后检查它带来的其他传递依赖项,并在开始时进行任何必要的类路径清理。当我这样做时,我发现它使我的调试会话变得更短。
| 归档时间: |
|
| 查看次数: |
4679 次 |
| 最近记录: |