有没有办法在sbt中创建对核心库的约束?
例如:
我不希望任何人使用Java Date Class,有没有办法为这些直接导入创建编译错误/警告?
答案 0 :(得分:1)
使用Wart Remover。调整自述文件中的示例,这应该是(未经测试的)
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)
}
}
}
}
答案 1 :(得分:0)
我从未见过任何东西,但你只能导入你想要的子类,你不必只包含顶级的子类。