有没有办法在 sbt 中对核心库创建约束?
例如:
我不希望任何人使用 Java Date 类,有没有办法为所有直接导入这些类创建编译错误/警告?
最佳答案
使用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)
}
}
}
}
关于java - sbt中核心库的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26341480/