【发布时间】:2016-03-17 20:32:11
【问题描述】:
我刚开始从事一个使用 SBT 进行构建的大型项目。我有一台安装了 Java 8 的新计算机,但团队的其他成员仍然使用 Java 7。就代码而言,这不是问题,因为我们都已准备好生成 v7 字节码。
尝试使用 publishLocal 操作发布项目时会出现问题。请记住,虽然我对 SBT 很陌生,而且我说/假设的一些事情可能不准确。
我们使用 sbt 0.13。当我运行命令 sbt publishLocal 时,它会运行 doc 操作,然后再运行 javadoc 以生成文档。由于我安装了 java 1.8,它使用相应版本的 javadoc,老实说,这真是让人头疼,抱怨每一个缺少 @return 或 @param、自闭合元素(例如“
” ) 等,并且因此返回非零值,从而导致发布失败。然而,正如我所提到的,这个项目相当大,虽然完成 javadoc 文档会更好,但目前还不可行。幸运的是,javadoc 8 提供了一个选项来禁用 pedantry:-Xdoclint:none 几乎可以让它安静下来,允许我通过将它添加到 javacOptions 来运行发布操作。
但是,正如我所说,其他团队成员仍在使用 java 7,不幸的是,javadoc 7 不支持该选项,因此如果我使用此选项推送 build.sbt 文件,它将在其他机器上失败。
所以现在我想知道我能做什么。在我看来,有很多选择,但似乎没有一个“足够简单”来解决这个愚蠢的问题:
- 在本地降级到 java 7(不太喜欢有两个并发版本)
- 让所有其他团队成员升级到 java 8(对他们来说很痛苦)
- 修复整个项目中的所有javadoc问题(每个人都痛苦)
希望,我还缺少另一个选项,例如,我可以根据 java 版本设置 javadoc 选项吗?或者除了 build.sbt 文件之外不需要触及任何其他东西的任何东西......
谢谢!
大卫
【问题讨论】: