java - 如何从依赖中获取子依赖或版本?

标签 java maven-3 guava dependency-management

我已在我的项目的 pom.xml guava 版本中定义,但在公共(public)模块中我只想使用 guava 的子依赖项:com.google.code .findbugs/artifactId:jsr305。如何获取与 Guava 中相同的已用 jsr305 版本或仅子依赖项 jsr305

最佳答案

我不知道有什么优雅的方法可以做到这一点(例如动态提取版本等),但是......

如果您只想知道版本(一次),只需查看 guava 的 pom.xml 即可。使用 IntelliJ,您只需按住 Ctrl 键并单击依赖项即可打开它,对于 Eclipse,我认为它是类似的。 然后,您可以将此版本添加到 dependencyManagement 部分中的主 pom.xml 中,并且在您的 commons pom.xml 中,您可以只使用不带版本的依赖项。

此外,您可以使用maven-enforcer-plugin来确保您的整个项目没有依赖冲突。因此,如果这在某个时刻出现分歧,您会在构建时立即看到它。请参阅Solving Dependency Conflicts in Maven 。但是,jsr305 是一个注释库,因此我不希望版本之间有太多不兼容的更改(只要您明确使用较新的版本)

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.4.1</version>
        <configuration>
            <rules><dependencyConvergence/></rules>
        </configuration>
    </plugin>
</plugins>

编辑:在这种情况下,jsr305的版本不是在guava本身定义的,而是在guava-parent中定义的

关于java - 如何从依赖中获取子依赖或版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57524509/

相关文章:

java - 如何在 Guava 中将expireAfterAccess与CacheBuilder一起使用

java - Camera.Parameters.getHorizo​​ntalViewAngle() 和 Camera.Parameters.getVerticalViewAngle() 的 Android Camera2 API 等效项是什么?

java - 在 Spring Data JPA 存储库中使用 @Primary

java - com.cedarsoftware 包不存在! java

java - Maven依赖插件下线未下载某些插件

maven - 更新 Maven 多模块项目中的版本

java - Optional<T> 的比较器

java - 从 recyclerview 项目中将选定的 RadioButton 的文本保存在模型类中

maven-3 - wildfly-maven-plugin 不部署任何东西

java - Guava map 中的 map