我想为sbt项目添加一个依赖项,该项目仅用于编译。它既不应该在运行时类路径上,也不应该在已发布的POM中以任何形式显示。
我们的想法是添加一个仅存根库(OrangeExtensions),以便可以在任何平台上编译项目,而不仅仅是OS X.
是否有可能以某种方式:
libraryDependencies += "com.yuvimasory" % "orange-extensions" % "1.3.0" % ???
答案 0 :(得分:49)
您可以为此创建一个自定义dependency configuration(实际上,当您在项目中使用私有宏时,这种情况变得非常普遍,我希望SBT提供一个)。
在build.sbt
:
// a 'compileonly' configuation
ivyConfigurations += config("compileonly").hide
// some compileonly dependency
libraryDependencies += "commons-io" % "commons-io" % "2.4" % "compileonly"
// appending everything from 'compileonly' to unmanagedClasspath
unmanagedClasspath in Compile ++=
update.value.select(configurationFilter("compileonly"))
该依赖关系不会出现在pom.xml
和朋友生成的publish
中。
几乎就是这样的配置:provided
配置。除provided
作为pom.xml
范围的依赖关系provided
之外。此外,provided
表示“运行时本身在运行时提供此功能”,而不是“运行时不需要”。