在SBT build.sbt
项目文件中,是否可以检索未捆绑为jar
的库依赖项?
就我而言,我正在尝试使用QTSampledSP,这需要.dll
和.jnilib
个库。
答案 0 :(得分:7)
要下载工件,您需要使 Ivy (以及因此sbt)明确地知道DLL工件。将以下内容添加到项目中的build.sbt
。
lazy val QtSampledJniLibArt = Artifact("qtsampledsp-osx", "jnilib", "jnilib")
libraryDependencies += "com.tagtraum" % "qtsampledsp-osx" % "0.9.6" artifacts(QtSampledJniLibArt)
resolvers += "beatunes" at "http://www.beatunes.com/repo/maven2"
然后你需要告诉sbt注意这些文物(再次build.sbt
):
classpathTypes ++= Set("jnilib", "dll")
默认情况下,sbt只会在类路径中添加几种类型(而jnilib
和dll
不在其中。)
[sbt-0-13-1]> help classpathTypes
Artifact types that are included on the classpath.
[sbt-0-13-1]> show classpathTypes
[info] Set(eclipse-plugin, bundle, hk2-jar, orbit, jar)
由于类路径上需要这些DLL / jnilib才能正确运行,因此您添加其他类型的上述设置classpathTypes
将更正以下内容(请不要忘记reload
在sbt控制台时。)
[sbt-0-13-1]> show classpathTypes
[info] Set(eclipse-plugin, bundle, hk2-jar, jnilib, orbit, jar, dll)
如果您需要查看这些文件的更多详细信息,请查看更新报告(来自update
任务),您可以在其中检查所有配置/模块/工件。在sbt控制台中运行show update
并查看target/resolution-cache/reports
中的文件。