Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从sbt中发现定义类的库?_Java_Scala_Sbt_Classpath - Fatal编程技术网

Java 如何从sbt中发现定义类的库?

Java 如何从sbt中发现定义类的库?,java,scala,sbt,classpath,Java,Scala,Sbt,Classpath,例如,我想从定义的类路径中发现哪个库声明了一个类,如ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP 任何像样的IDE都提供了一个功能,您可以在其中搜索此类类型(在Eclipse中查找类型),但如何在SBT中实现这一点呢?有什么任务/命令/插件可以帮我解决这个问题吗 这样一个特性对于类冲突检测也很有用(如果多个JAR将定义同一个类):请参阅这个相关问题。我认为我知道的技术实际上并不奏效 正在进行分析(不起作用) 乍一看,这看起来很有用,但映射的方

例如,我想从定义的类路径中发现哪个库声明了一个类,如ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP

任何像样的IDE都提供了一个功能,您可以在其中搜索此类类型(在Eclipse中查找类型),但如何在SBT中实现这一点呢?有什么任务/命令/插件可以帮我解决这个问题吗


这样一个特性对于类冲突检测也很有用(如果多个JAR将定义同一个类):请参阅这个相关问题。

我认为我知道的技术实际上并不奏效

正在进行分析(不起作用) 乍一看,这看起来很有用,但映射的方向是从
文件
字符串
,所以它实际上不是很有用

java反射机制 如果您可以获得
,您可以执行以下操作:

scala> a.getClass.getClassLoader match { case ucl: java.net.URLClassLoader => ucl.getResource(a.getClass.getName.replace('.', '/') + ".class")  }
res13: java.net.URL = jar:file:/Users/eugene/.conscript/boot/scala-2.10.5/org.scala-sbt/sbt/0.13.9-RC1/incremental-compiler-0.13.9-RC1.jar!/sbt/inc/MAnalysis.class
scala> a.getClass.getClassLoader match { case ucl: java.net.URLClassLoader => ucl.getResource(a.getClass.getName.replace('.', '/') + ".class")  }
res13: java.net.URL = jar:file:/Users/eugene/.conscript/boot/scala-2.10.5/org.scala-sbt/sbt/0.13.9-RC1/incremental-compiler-0.13.9-RC1.jar!/sbt/inc/MAnalysis.class