如果源代码包含关键字/regex,如何使maven构建失败 问题

如果源代码包含关键字/regex,如何使maven构建失败 问题,maven,Maven,如果源代码包含关键字/regex,如何使maven构建失败 奖金 能够指定要检查的路径 能够指定要检查的“类型”路径: “我想确保关键字不包含在'main'资源中。我不关心'test'” “我想确保关键字不包含在'test'资源中。我不关心'main'” 能够指定在哪个阶段执行测试(例如编译前) 解决方案 (基于当前答案2013-09-26) 目前最好的解决方案似乎是@BaptisteMathus,它与maven完全集成,并且与平台无关 在我的用例中,@GregWhitaker是一个好

如果源代码包含关键字/regex,如何使maven构建失败

奖金
  • 能够指定要检查的路径
  • 能够指定要检查的“类型”路径:
    • “我想确保关键字不包含在'main'资源中。我不关心'test'”
    • “我想确保关键字不包含在'test'资源中。我不关心'main'”
  • 能够指定在哪个阶段执行测试(例如编译前)
解决方案 (基于当前答案2013-09-26)

目前最好的解决方案似乎是@BaptisteMathus,它与maven完全集成,并且与平台无关

在我的用例中,@GregWhitaker是一个好的例子,因为它实现起来更便宜,因为我不关心平台独立性(
我会创建一个小程序来运行这些检查,然后通过执行。如果您在主资源中找到关键字,那么只需返回一个非零返回代码,这将导致插件构建失败。

我会创建一个小程序来运行这些检查,然后通过执行。如果您在主资源中找到关键字es然后只返回一个非零返回代码,这将导致插件生成失败。

我认为这正是您想要的。

我认为这正是您想要的。

Sonar有一个插件,它允许您在注释块中搜索字符串并指定严重性处理。我假设这就是您正在寻找的。…解析源代码本身可能需要像checkstyle这样的工具的自定义规则,我还没有尝试过这种方法,但它很有用

这可以与插件结合使用,当您的项目中的警报条件被违反时,插件会使您的构建失败。

Sonar有一个插件,它允许您在注释块中搜索字符串并指定严重性处理。我假设这就是您要找的……解析源代码本身可能需要一个自定义规则对于像checkstyle这样的工具,我还没有尝试过这种方法,但它很有用


这可以与插件结合使用,当项目中的警报条件被违反时,插件会使构建失败。

去SonarQube做这件事不是个坏主意

无论如何,如果有人想使用一个只支持maven的解决方案,那么正确的方法就是使用一个专门用于“强制”maven构建的插件。使用exec maven插件并不是那么标准,而且肯定太依赖于平台


这个插件在逻辑上命名,实际上非常简单。

去SonarQube做这件事不是个坏主意

无论如何,如果有人想使用一个只支持maven的解决方案,那么正确的方法就是使用一个专门用于“强制”maven构建的插件。使用exec maven插件并不是那么标准,而且肯定太依赖于平台


这个插件在逻辑上命名,实际上非常简单。

我不知道这个插件。谢谢你提到它。看看它的使用情况,虽然我不知道如何使它在生成时失败。如果你不喜欢生成的报告中的内容,你会如何让它在生成时失败?既然你提到了这一点,它看起来就像仅报告。但是根据结果添加一个使构建失败的目标应该不会太难。事实上,这是最重要的部分:失败!/防止构建发生。我认为使用这个插件bug找不到使其失败的方法(除了分岔项目、深入源代码并创建一个只有我才会使用的全新插件之外……我更愿意找到一个官方插件;)无论如何,谢谢你看这个问题,罗伯特。我不知道这个插件。谢谢你提到它。看看它的使用情况,虽然我不知道如何使它在生成时失败。如果你不喜欢生成的报告中的内容,你会如何让它在生成时失败?既然你提到了,它似乎只是在报告。B但是,根据结果添加一个使构建失败的目标应该不会太难。事实上,这是最重要的部分:失败!/防止构建发生。我认为使用这个插件bug无法找到使其失败的方法(除了分岔项目,深入源代码并创建一个只有我才会使用的全新插件…我更愿意找到一个官方插件;))无论如何,谢谢你看这个问题,罗伯特。谢谢格雷格。我也考虑过这个问题,尤其是“
grep
ing”价值。这缺少的是一种确定源代码所在目录的方法:我有一些非标准布局的项目(它们与标准maven插件配合使用效果很好)@Cerber-您应该能够将源代码目录作为参数传递进来。谢谢Greg。我也考虑过,尤其是关于“
grep
ing”值。这缺少一种确定源代码所在目录的方法:我有一些非标准布局的项目(它们与标准maven插件配合使用效果很好)@Cerber-您应该能够将源代码目录作为参数传递进来。非常好!我不知道“build breaker”“。我想我会使用你的解决方案作为@GregWhitaker解决方案的更高级方法。在某个项目上,我已经使用自定义sonar规则创建了一个拦截器,然后进行了手动审查。但我非常热衷于自动完成任务:)不幸的是,触发此问题的项目没有受到sonar的监控……非常好!我不知道“建筑破坏者”。我想我会使用您的解决方案作为@GregWhitaker解决方案的更高级方法。在某个项目中,我已经使用自定义声纳规则创建了一个拦截器,然后进行了手动检查。但我非常热衷于自动完成工作:)不幸的是,这个项目