java - 在构建中使用 maven 传递依赖
问题描述
有没有办法使用某些 maven 模块的传递依赖,而不是使用默认的 maven lib 版本?例如:
我的项目依赖于 qulice-maven-plugin,它依赖于 qulice-checkstyle,它依赖于 checkstyle 库。我想在我的项目中运行 checkstyle,但使用从这些传递依赖项加载的相同版本和配置。
如果我运行mvn checkstyle:checkstyle
,这是运行 checkstyle 的命令,它会加载默认的 checkstyle 版本并使用其默认配置。我不想从这些依赖项中复制我的所有配置,我只想让 maven 足够聪明,可以使用上面定义的依赖项执行 checkstyle。
有没有办法做到这一点?
解决方案
如果我运行 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:check
和https://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
从依赖项的根目录加载资源一样。
推荐阅读
- google-chrome-app - 受控推出不起作用
- javascript - 流未检测 if-block 处理潜在的未定义(可能)值。为什么?
- vue.js - vue.js bootstrap-vue 动态更改警报变体
- php - PHP Socket.IO 有时只连接
- c# - 在 Travis CI 上使用 Mono 5.14.0.177、msbuild 15.0、nuget 4.7.1 构建失败,但在 VirtualBox 中无法重现
- angular - 如何在前端和后端存储 JWT 刷新令牌?
- android - 为什么 iPhone 显示水平滑动而 Android 没有
- mysql - MySQL得到不重叠的日期范围
- sql-server - 通过 SSIS 从多个 MySQL 数据源导入数据?
- c# - 连接断开时 Apache.NMS.ActiveMQ 客户端挂起