我有3个模块(jvm
,stateAccess
,persistence
),具有以下依赖关系:
jvm->stateAccess->persistence
。
我想完全将jvm
与persistence
隔离开,好像从jvm
persistence
的角度来看并不存在。因此,jvm
无法从persistence
导入任何内容。
但是使用以下build.sbt
文件,情况并非如此:
lazy val jvm = (project in file( "jvm" ))
.settings(...)
.dependsOn( stateAccess % "compile->compile;test->test" )
lazy val persistence = (project in file( "persistence" ))
.settings(...)
lazy val stateAccess = (project in file( "stateAccess" ))
.settings(...)
.dependsOn( persistence )
问题是jvm
可以看到persistence
。
这是由于SBT中依赖关系的传递性:jvm
可以从persistence
导入类并使用它们,即使jvm
不直接依赖于persistence
换句话说,我想确保jvm
仅取决于stateAccess
,并且不能使用persistence
中的任何内容。
有没有办法禁止这种传递依赖?
答案 0 :(得分:-1)
lazy val stateAccess = (project in file( "stateAccess" ))
.settings(...)
.dependsOn( persistence % "compile-internal;test-internal" )
问题解决了!