Jar*_*rek 7 sbt javacv javacpp
我有一个项目,用于收集安装程序(sbt-install4j)的依赖项dependencyClasspath.它大部分时间都有效,除非我有一个特定的依赖:
libraryDependencies += "org.bytedeco" % "javacpp" % "0.10"
Run Code Online (Sandbox Code Playgroud)
"javacpp"不会被添加到dependencyClasspath.您可以创建一个仅包含上述依赖项的简单SBT项目并尝试show dependencyClasspath,它将打印:
[info] List(Attributed(C:\Users\me\.sbt\boot\scala-2.10.4\lib\scala-library.jar))
Run Code Online (Sandbox Code Playgroud)
没有"javacpp".有什么线索可能会发生什么?这是一个SBT错误吗?
sbt从它生成的类路径中排除某些打包类型,因为并非所有打包类型都有意义。不幸的是,它似乎默默地进行了这种排除 - 并且 的默认值classpathTypes并不总是您想要的。
pom.xml依赖项的打包类型可以在依赖项的或ivy.xml(如果适用)中找到。主要有两种情况:
pom,这可能意味着它是一个父 pom 并且您试图依赖错误的东西- 查找您真正想要的特定 Maven 模块!maven-plugin在这种特殊情况下,您需要将包装类型添加到classpathTypes,使用:classpathTypes += "maven-plugin"其他情况可能与上述两种情况之一类似。