首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ant:从-Xlint检查中排除生成的源代码

Ant:从-Xlint检查中排除生成的源代码
EN

Stack Overflow用户
提问于 2018-08-03 17:01:54
回答 1查看 141关注 0票数 0

在我们的项目中,我们同时使用-Xlint:all-Werror。我们有一个基于ANTLR2的解析器,从antlr生成的代码不是很好,并且会发出很多lint警告。因此,我们需要对生成的源代码禁用lint检查。

问题是,生成的源依赖于我们的源(例如,ANTRL允许使用自定义AST节点),而我们的源当然依赖于ANTLR源(即我们使用生成的解析器)。

有没有可能从lint检查中排除源代码,但仍然一起编译它?

(请参阅稍微相关的Maven 3: How to exclude generated sources from Xlint check?)

EN

回答 1

Stack Overflow用户

发布于 2018-08-03 21:45:17

好了,我找到了一个解决方案。

代码语言:javascript
复制
target name="compile" depends="antlr">
    <mkdir dir="build/classes"/>

    <!-- compile antlr generated sources -->
    <!-- compiles also necessary sources from sourcepath -->
    <javac srcdir="build/antlr" destdir="build/classes" sourcepath="src" classpath="ext/antlr.jar>
    </javac>

    <!-- compile sources -->
    <!-- already prebuilt antlr classes are present -->
    <javac srcdir="src" destdir="build/classes" classpath="ext/antlr.jar">
        <compilerarg value="-Xlint:all"/>
        <compilerarg value="-Werror"/>
        <!-- needed to recompile already compiled sources with lint enabled -->
        <compilerarg value="-Xprefer:source"/>
    </javac>
</target>

第一个javac只编译antlr生成的源代码和antlr生成的代码所依赖的所有必要的源代码。第二个javac使用-Xlint:all-Werror编译所有未生成的源代码,并重用antlr生成的代码中的预构建类。请注意-Xprefer:source,它强制javac重新编译所有未生成的源代码,即使第一步中已经有了相应的.class文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51668979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档