【问题标题】:Parsable output from javac? XML?javac的可解析输出? XML?
【发布时间】:2011-10-20 20:45:31
【问题描述】:

我们目前使用 ant 构建我们的 java 应用程序。 我的目标是找到一种方法来识别导致构建失败的文件。

可以做什么-

  • 解析包含“.java”的所有内容。
  • 过滤掉所有有“.java:number:warning”的东西
  • 为文件、行和原因解析该行。

这并不难......但它似乎有点不健壮。 (目前我没有想到一个更好的词。也许是“坏”)

可惜没有以 XML 格式输出?或者可能有?

编辑:这个项目的一个假设是我们不想在每一个变化的基础上进行构建,但现在我已经和 jenkins 一起工作了一点,我认为这实际上是可能的。

【问题讨论】:

  • 您不能从 System.err 中读取信息吗?那么您只会收到错误消息,这些消息可以快速评估..
  • 是的,我可以,但我仍然需要只过滤文件并过滤掉警告。这就是我列出的步骤。
  • 看看javax.tools,但我不知道那是不是你要找的。​​span>

标签: java ant jenkins javac


【解决方案1】:

我认为没有。可能是 Eclipse 拥有自己的编译器的原因之一。

您可以通过拥有自己的 ant 任务来限制问题(这样您就可以更好地控制输出格式,而不必解析整个 ant 输出)。

如果您正在设计一个构建系统,将源代码从源代码控制中提取出来(您标记了 jenkins),一个更简单的选择是列出上次成功构建和损坏的构建之间的更改。

你想完成什么?

【讨论】:

  • 最终目标是确定“谁破坏了构建”。但是,我们将进行每日构建,每天更改的文件太多了。
  • 现在我想起来了,我想知道是否可以进行 30 分钟的构建。将不得不考虑这一点。
  • @user606723:我们在每次推送的基础上构建了 jenkins。詹金斯不会落后,因为它总是拉最新的。所以有时它会在一个构建中获得几个人的提交(因为之前的构建花费了太长时间并且在此期间发生了多次推送),但就“谁破坏了构建”而言,它仍然是可控的。
  • 我不确定外部结构是否支持“每次推送”,但我会研究它。谢谢。
【解决方案2】:

以 XML 格式输出的方法是:

ant -listener org.apache.tools.ant.XmlLogger

输出将保存在构建目录中的 log.xml 中。不幸的是,结构不能很好地满足您的需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-06
    • 2011-09-13
    相关资源
    最近更新 更多