我正在使用android-sbt-plugin
sbt,我想在测试类路径中添加一个非托管 jar。原因是 android.jar 包含 org.json 库的存根函数,并导致单元测试引发异常。这就是我正在做的
unmanagedClasspath in Test <+= (baseDirectory) map { base =>
Attributed.blank(base/"test-libs"/"json.jar")
}
由于 jars 的顺序,当我在 sbt 中运行测试命令时,该文件被忽略。如果我键入命令,订单会清楚地将 android.jar 显示为第一个 jar
show test:unmanaged-classpath [info] ArrayBuffer(Attributed(/home/rohit/Projects/android-sdk-linux/platforms/android- 17/android.jar), Attributed(/home/rohit/Projects/barfrendz/trunk/ src/buzze/test-libs/json.jar))
如果我创建一个 lib 文件夹并让 sbt 获取 json jar,则顺序颠倒,现在运行测试,但由于与 android.jar 中的 org.json 命名空间冲突,我无法再创建一个 android 包。这是例外
[error] (Buzze/android:proguard) java.io.IOException: Can't read [/home/rohit/Projects/barfrendz/trunk/src/buzze/lib/json.jar(;;;;!META-INF/MANIFEST.MF,!**/R.class,!**/R$*.class,!**/TR.class,!**/TR$.class,!**/library.properties)] (Can't process class [org/json/CDL.class] (Unsupported version number [51.0] for class format))
无论如何我可以更改单元测试的类路径中 jar 的顺序吗?