eclipse获取Java项目中所有构建错误的最快方法是什么?
目前,我正在考虑将一些构建过程集成到我的源代码管理中(特别是Git钩子)。我正在尝试编写一个预提交钩子,用于检查Java项目(一个中大型测试开发项目)中的构建错误,但不允许在构建中包含错误的提交。事实证明,这相当具有挑战性
方法here使用命令行Eclipse工具构建和输出警告和错误。这在技术上是可行的,但速度很慢,可能会导致EclipseIDE出现问题(我已经有过堆分配错误)。我还研究了使用ant的解决方案,但这些方法似乎不是简单的单线解决方案,而且可能仍然很慢
我的主要问题是:通过命令行构建和验证Java项目的最快的(运行时编译速度)方法是什么?我想要一个没有错误返回0的解决方案,如果存在错误,则返回其他内容,但我愿意考虑其他方面
# 1 楼答案
詹金斯也许是一个你可以看的东西
# 2 楼答案
在你提到的选择中,蚂蚁是最好的。但让我们面对现实,编写XML很糟糕。我的猜测是,当编译失败时,任何构建工具都会失败并返回错误代码。我最喜欢的是sbt,但是如果你不喜欢Scala(甚至Scala中的人也喜欢抱怨sbt),就会有一点学习曲线。国际海事组织的另一个伟大选择是Gradle。在Groovy中编写脚本,这是Java的动态类型超集
# 3 楼答案
让我们从一些基本知识开始:
javac
可用,并且是正确的版本李>现在,签出Java项目的新副本、运行Ant、等待它编译,然后处理编译的输出需要多长时间?一两分钟?20秒?10秒?当您等待Git推送完成时,即使是10秒也会感觉像是永远的。而且,如果其他用户想要提交代码,他们也必须等待
一种更好、更简单的方法是使用连续构建服务器如Jenkins。詹金斯很容易安装。(它自带内置的应用服务器)并有数百个插件,可用于帮助报告项目的运行状况。如果编译无法进行,詹金斯会给罪犯和你提到的任何人发电子邮件
我们有Jenkins设置来进行Ant构建、Maven构建,并使用Git或Subversion作为我们的存储库(取决于项目)。Jenkins构建项目,保存控制台日志,如果
build.xml
失败,则构建将失败。在我们这里,这意味着我开始缠着开发人员解决问题或撤销他们的更改。在我的上一个工作场所,开发人员有10分钟的时间来修复构建,否则我将撤消他们的更改Jenkins不仅可以让您知道构建失败的时间,还提供了一些插件,这些插件可以报告Java编译器警告、Javadoc警告、运行Findbugs、PMD、找到重复的代码行(通过PMD附带的CPD),然后以一系列图的形式报告所有内容。您还可以根据使用这些工具发现的问题数量,将构建标记为不稳定的(构建完成,但有问题),或者干脆使构建失败
Jenkins还可以运行单元测试,再次将结果绘制成图表,然后使用JaCoCo或Cobertura或Emma运行覆盖率分析
那么,看看詹金斯。它很容易安装,并会做你想要的和更多
# 4 楼答案
蚂蚁。不会有“一线解决方案”。编写一个ANT脚本来编译代码,如果有任何错误就会失败。这并不容易,但这是最好的选择