有没有办法在sbt中为核心库创建约束?
例如:
我不希望任何人使用Java类,是否有一种方法可以为这些类的所有直接导入创建编译错误/警告?
发布于 2014-10-14 10:07:31
使用疣残留。修改自述的示例,这应该类似于(未经测试)
import org.brianmckenna.wartremover.{WartTraverser, WartUniverse}
object JavaDate extends WartTraverser {
def apply(u: WartUniverse): u.Traverser = {
import u.universe._
val JavaDate: Type = typeOf[java.util.Date]
val JavaCal: Type = typeOf[java.util.Calendar]
new Traverser {
override def traverse(tree: Tree) {
tree.tpe match {
case JavaDate =>
u.error(tree.pos, "java.util.Date not allowed")
case JavaCal =>
u.error(tree.pos, "java.util.Calendar not allowed")
case _ =>
}
super.traverse(tree)
}
}
}
}发布于 2014-10-13 14:18:17
我从未见过任何东西,但是您只能导入所需的子类,而不必只包含顶级的子类。
https://stackoverflow.com/questions/26341480
复制相似问题