我刚刚开始研究使用SBT进行构建的大型项目。我安装了一台安装了Java 8的新计算机,但团队的其他成员仍使用Java 7.就代码而言,这不是问题,因为我们都设置了生成v7字节代码。
尝试使用publishLocal操作发布项目时出现问题。请记住,虽然我对SBT很新,但我说/假设的一些事情可能不准确。
我们使用sbt 0.13。当我运行命令sbt publishLocal时,它会运行doc操作,然后运行javadoc来生成文档。由于我安装了java 1.8,它使用了相应版本的javadoc,让我们说实话是一个真正的痛苦,抱怨每一个缺失的@return或@param,自闭元素(例如“< p /> ;“)等等,因此而返回非零值,从而使发布失败。但是,正如我所提到的,该项目相当大,虽然最好完成javadoc文档,但目前还不可行。
幸运的是,javadoc 8提供了一个选项来禁用迂腐:-Xdoclint:none会使几乎任何东西都安静,允许我通过将它添加到javacOptions来运行发布操作。
但是,正如我所说,其他团队成员仍在使用java 7,不幸的是,javadoc 7不支持该选项,因此如果我使用此选项推送build.sbt文件,它将在其他计算机上失败。
所以现在我想知道我能做些什么。我看待它的方式,有很多选项,其中没有一个看起来“足够简单”来解决这个愚蠢的问题:
希望我还缺少另一个选项,例如,允许我根据java版本设置javadoc选项吗?或其他任何不需要触及除build.sbt文件以外的任何内容...
谢谢!
大卫
答案 0 :(得分:1)
是的,您可以根据Java版本设置Javadoc选项:
javacOptions in Compile ++=
sys.props("java.version").split('.') match {
case Array("1", n, _*) if n.toInt <= 7 =>
Seq()
case _ =>
Seq("-Xdoclint:none")
}