【问题标题】:How to display all java compiler warnings in ant script?如何在 ant 脚本中显示所有 java 编译器警告?
【发布时间】:2015-11-12 17:41:28
【问题描述】:

我有两个问题,

  1. Eclipse 中是否在 Java 编译器的 Problems 视图下显示所有警告?
  2. 如果是这样,如何使用 javac ant 任务列出它们?我已经按照here 的描述尝试了 -Xlint:all 和 -Xmaxwarns 10000 但没有运气,它只显示其中一些,但不是我在 eclipse 中看到的全部。

如果 TeamCity 出现警告,我需要这个来使构建失败,如果您有更好和更简单的建议,请分享。

谢谢。

【问题讨论】:

    标签: java ant teamcity


    【解决方案1】:

    您可以这样做,但您必须为此使用 eclipse 编译器。 Eclipse 使用自己的编译器,它不是常规的javac。它很特别,因为生成的警告比常规编译器多得多,并且可以运行带有编译错误的代码,直到您进入未编译的代码流。

    【讨论】:

      【解决方案2】:

      这是在 Ant 中显示所有 Java 编译器警告的方法:

      <javac destdir="${main.destdir}"
          ...
          ...>
          <compilerarg value="-Xlint"/>
          <compilerarg value="-Xmaxwarns"/>
          <compilerarg value="9999"/>
      </java>
      

      注意,&lt;compilerarg value="xxx"&gt; 不能与&lt;compilerarg line="xxx"&gt; 结合使用,所以我只使用value 参数。

      如果这不起作用,你会得到什么错误?

      【讨论】:

      • 这不会显示所有警告,例如未使用的导入。
      • 您可以将&lt;compilerarg value="-Xlint"/&gt; 更改为&lt;compilerarg value="-Xlint:all"/&gt;。第一个打开所有推荐警告。但是,文档随后指出建议使用所有警告,这使我相信-Xlint-Xlint:all 是相同的。我在 Java Compiler 文档中没有看到任何关于此的具体内容。我在Bugtraq 中看到了针对此问题的错误,但没有承诺修复。 Findbugs 或 PMD 可能能够跟踪到这一点。有没有 javac 选项来显示这个?
      • 您可以在 Ant 中使用Eclipse Java compiler。这将指出未使用的导入,但我找不到各种命令行选项的列表。
      • 这里是 Eclipse java 编译器的命令行参数help.eclipse.org/juno/…
      • 所以,您现在可以尽情使用&lt;compilerarg value="-warn..."/&gt;。当我有更多时间时,我会更新我的答案。
      【解决方案3】:

      Ant:查看所有编译器错误:

      <javac debug="on" includeantruntime="false" .... >
             <compilerarg value="-Xlint:all" />
      </javac>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-01
        • 1970-01-01
        • 2015-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-12
        • 1970-01-01
        相关资源
        最近更新 更多