我有一个项目,我使用多个依赖项。我习惯使用
在开发环境中执行我的代码mvn compile exec:java -Dexec.classpathScope=compile -Dexec.mainClass="my.Main"
直到最近我开始使用一个依赖项(让我们称之为A
)来定义它自己与运行时作用域的依赖关系之前一直工作正常。其中一个运行时依赖项(让我们称之为B
)实际上是对我使用provided
范围设置的另一个依赖项的依赖(让我们称之为C
)。
所以我有
MyProject depends on A[compile] who depends on B[runtime]
MyProject depends on C[provided] who depends on B[no-scope-specified]
我最终将B
视为运行时依赖项,当我启动上述命令时会导致ClassNotFoundException
。我找到的唯一解决方案是添加一个dependencyManagement
条目,强制其范围进行编译。
这让我感到困扰,因为我不直接使用该依赖项(我的代码中没有引用它)所以我不应该为此烦恼。
有没有办法避免这种冲突,并且在使用mvn exec:java
时可能会加载类路径中的所有依赖项?
由于