有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

eclipse获取Java项目中所有构建错误的最快方法是什么?

目前,我正在考虑将一些构建过程集成到我的源代码管理中(特别是Git钩子)。我正在尝试编写一个预提交钩子,用于检查Java项目(一个中大型测试开发项目)中的构建错误,但不允许在构建中包含错误的提交。事实证明,这相当具有挑战性

方法here使用命令行Eclipse工具构建和输出警告和错误。这在技术上是可行的,但速度很慢,可能会导致EclipseIDE出现问题(我已经有过堆分配错误)。我还研究了使用ant的解决方案,但这些方法似乎不是简单的单线解决方案,而且可能仍然很慢

我的主要问题是:通过命令行构建和验证Java项目的最快的(运行时编译速度)方法是什么?我想要一个没有错误返回0的解决方案,如果存在错误,则返回其他内容,但我愿意考虑其他方面


共 (4) 个答案

  1. # 1 楼答案

    詹金斯也许是一个你可以看的东西

  2. # 2 楼答案

    在你提到的选择中,蚂蚁是最好的。但让我们面对现实,编写XML很糟糕。我的猜测是,当编译失败时,任何构建工具都会失败并返回错误代码。我最喜欢的是sbt,但是如果你不喜欢Scala(甚至Scala中的人也喜欢抱怨sbt),就会有一点学习曲线。国际海事组织的另一个伟大选择是Gradle。在Groovy中编写脚本,这是Java的动态类型超集

  3. # 3 楼答案

    让我们从一些基本知识开始:

    • 预提交钩子在服务器而不是客户端上运行。默认情况下没有工作目录。您必须确保javac可用,并且是正确的版本
    • 预提交钩子将冻结用户的终端,直到完成

    现在,签出Java项目的新副本、运行Ant、等待它编译,然后处理编译的输出需要多长时间?一两分钟?20秒?10秒?当您等待Git推送完成时,即使是10秒也会感觉像是永远的。而且,如果其他用户想要提交代码,他们也必须等待

    一种更好、更简单的方法是使用连续构建服务器Jenkins。詹金斯很容易安装。(它自带内置的应用服务器)并有数百个插件,可用于帮助报告项目的运行状况。如果编译无法进行,詹金斯会给罪犯和你提到的任何人发电子邮件

    我们有Jenkins设置来进行Ant构建、Maven构建,并使用Git或Subversion作为我们的存储库(取决于项目)。Jenkins构建项目,保存控制台日志,如果build.xml失败,则构建将失败。在我们这里,这意味着我开始缠着开发人员解决问题或撤销他们的更改。在我的上一个工作场所,开发人员有10分钟的时间来修复构建,否则我将撤消他们的更改

    Jenkins不仅可以让您知道构建失败的时间,还提供了一些插件,这些插件可以报告Java编译器警告、Javadoc警告、运行FindbugsPMD、找到重复的代码行(通过PMD附带的CPD),然后以一系列图的形式报告所有内容。您还可以根据使用这些工具发现的问题数量,将构建标记为不稳定的(构建完成,但有问题),或者干脆使构建失败

    Jenkins还可以运行单元测试,再次将结果绘制成图表,然后使用JaCoCoCoberturaEmma运行覆盖率分析

    那么,看看詹金斯。它很容易安装,并会做你想要的和更多

  4. # 4 楼答案

    蚂蚁。不会有“一线解决方案”。编写一个ANT脚本来编译代码,如果有任何错误就会失败。这并不容易,但这是最好的选择