【问题标题】:Ant fail and exit if current build has compile errors如果当前构建有编译错误,Ant 失败并退出
【发布时间】:2016-10-10 06:09:23
【问题描述】:

我有一个名为 devbuild.xml 的 antscript。这个脚本只是将我的文件部署到 1 个 tomcat 和 2 个 karaf 实例,而不调用 javac 或类似的东西。编译代码的构建本身是通过使用默认 java 构建器的 Project -> Build Automatically 菜单选项发生的。脚本本身可以通过外部工具配置以 2 种方式调用(启用或不启用可选步骤)。

但是,我现在有几次意外部署到 Tomcat,而我的代码出现编译错误(项目资源管理器中的红色 x 出现在有错误的文件上)。我想通过检查当前正在部署的构建是否有文件来避免这种情况,但最好不必重建整个项目。

所以本质上,我想在部署开始时检查整个项目的最新版本是否存在编译时错误,而不必手动检查它们,如果有任何错误,请取消部署。这可能吗?

【问题讨论】:

  • 您可以使用<touch> task 在 Ant 构建开始和构建成功完成时触摸文件。例如,构建开始时为<touch file="build.begin"/>,构建成功完成时为<touch file="build.done"/>。部署时,您的 Ant 脚本可以检查 build.done 是否比 build.done 更新。
  • @ChadNouis 不过,这需要一个自定义构建脚本,这意味着我也可以在我的 antscript 中调用 <javac> 任务并出现故障。 “自动构建”窗口中的构建本身只是默认的 Java 构建器。
  • 你可以在你的 ant build xml 中使用javac 任务,它会编译你的源代码,如果代码不可编译,编译会失败
  • @Sanjeev 就是这样:我宁愿不使用javac 任务。我的意思是,它已经编译了,为什么我不能检查最近的编译?

标签: java eclipse ant build


【解决方案1】:

除了现有的Java Builder,您还可以使用在Java Builder 之后运行的Ant BuilderProject / Properties / Builder / New Ant Builder
要检查 Java Builder 编译是否正确,请在您的 Ant 脚本中使用一些 condition
为确保一切按预期工作,您应该考虑使用 Ant javac 任务进行编译,因为 Eclipse JDT 编译器和 Javac 的行为不同,例如在处理泛型时。

【讨论】:

    猜你喜欢
    • 2018-05-26
    • 1970-01-01
    • 2022-12-16
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多