LocalDate#toDateMidnight读取的javdoc 如下:
从v1.5开始,建议您避免使用DateMidnight并使用toDateTimeAtStartOfDay(),因为下面有详细说明.
如果默认时区在午夜切换到夏令时,则此方法将引发异常,此LocalDate表示该切换日期.问题是在所需的日期没有午夜这样的时间,因此抛出了这样的例外.
在某些时区中不存在午夜这一事实似乎足以避免DateMidnight完全使用(假设您的代码没有使用已知不具有此DST情况的固定时区,并且永远不需要在其中使用不同的时区未来).
但是,DateMidnight不会弃用,并且DateMidnight类本身的javadoc中没有类似的建议或警告.此外,DateMidnight构造函数愉快地接受即时和时区,使得在给定的一天不存在午夜,而不是投掷IllegalArgumentException类似的LocalDate#toDateMidnight.结果DateMidnight表现为DateTime在一天开始时的时间.
当某个特定日期不存在午夜时,为什么LocalDate#toDateMidnight在DateMidnight构造函数没有的情况下抛出异常?推荐的用例是DateMidnight什么?
用于指示编译库的Scala版本的基础机制是将_ <scala-version>附加到库的名称.这种相当简单的方法允许与Maven,Ant和其他构建工具的用户进行互操作.- sbt文档:跨构建发布约定
虽然这是一种简单的方法,但与Maven和其他构建工具的互操作性仍有待改进.因为它artifactId是不同的(例如scalatest_2.9.0和scalatest_2.10.0),Maven将它们视为不同的工件.Maven的依赖解析机制因此受到损害,同一工件的多个版本(针对不同的scala版本构建)可以在类路径上结束.
为什么不把scala版本放在分类器中?这似乎是分类器的主要预期用例之一:
分类器允许[Maven]区分从相同POM构建但内容不同的工件.作为此元素的动机,请考虑一个项目,该项目提供针对JRE 1.5的工件,但同时也是一个仍支持JRE 1.4的工件.第一个工件可以配备分类器jdk15,第二个工件配备jdk14,以便客户端可以选择使用哪个.- Maven文档:POM参考