首页 > 解决方案 > 在构建中使用 maven 传递依赖

问题描述

有没有办法使用某些 maven 模块的传递依赖,而不是使用默认的 maven lib 版本?例如:

我的项目依赖于 qulice-maven-plugin,它依赖于 qulice-checkstyle,它依赖于 checkstyle 库。我想在我的项目中运行 checkstyle,但使用从这些传递依赖项加载的相同版本和配置。

如果我运行mvn checkstyle:checkstyle,这是运行 checkstyle 的命令,它会加载默认的 checkstyle 版本并使用其默认配置。我不想从这些依赖项中复制我的所有配置,我只想让 maven 足够聪明,可以使用上面定义的依赖项执行 checkstyle。

有没有办法做到这一点?

标签: javamavencheckstyle

解决方案


如果我运行 mvn checkstyle:checkstyle 它会加载一个默认的 checkstyle 版本

如果您正在加载版本 6.18,请参阅https://stackoverflow.com/a/27359107/1016482,了解如何覆盖它以使用更新版本。

运行mvn checkstyle:checkstyle,即运行checkstyle的命令

如果您想在项目中存在 checkstyle 违规时使构建失败,那么这不是命令。如https://maven.apache.org/plugins/maven-checkstyle-plugin/checkstyle-mojo.html所示,如果您的项目中存在 checkstyle 违规,这只会生成文件报告并且不会使构建失败。

为此,他们推荐checkstyle:checkhttps://maven.apache.org/plugins/maven-checkstyle-plugin/usage.html#Checking_for_Violations_as_Part_of_the_Build显示了如何为您的自定义参数配置它的示例。

我不想从这些依赖项中复制所有配置

您应该能够使用嵌入的配置,就像嵌入在 checkstyle 中的 sun 和 google 配置一样。只需将其添加为依赖项并指定配置位置,就像/my/path/my_config.xml从依赖项的根目录加载资源一样。


推荐阅读