小编Joh*_*zek的帖子

从 Checkstyle + PMD + Findbugs 迁移到 SonarQube

我想从 Checkstyle + PMD + Findbugs 迁移到 SonarQube。我\xc2\xb4ve 读到 SonarQube 替换了所有 3 个插件(并且另外还有一些新规则)。但在我的项目中,我们对这些插件进行了一些自定义配置,例如checkstyle.xml支持自定义 checkstyle 规则(其中至少一半是自定义修改的 checkstyle 规则(例如特殊格式的代码、过滤粗鲁单词等)。

\n\n
...\n    <module name="RegexpSingleline">\n        <property name="format" value="debugger" />\n        <property name="message" value="Javascript files must not contain \'debugger\' statement" />\n        <property name="fileExtensions" value="js" />\n    </module>\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n

findbugs 也有同样的事情

\n\n
<FindBugsFilter>   \n...\n    <Match><Bug pattern="XXE_XMLREADER" /></Match> \n...\n</FindBugsFilter>\n
Run Code Online (Sandbox Code Playgroud)\n\n

和PMD

\n\n
...\n    <rule ref="category/java/errorprone.xml/AvoidBranchingStatementAsLastInLoop" />\n    <rule ref="category/java/errorprone.xml/AvoidDecimalLiteralsInBigDecimalConstructor" />\n...\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么是否有可能分析当前规则,迁移到声纳立方体并添加默认声纳立方体配置中不存在的新自定义规则?

\n\n

主要动机是让声纳立方体的一个实例在某台服务器上运行,并且所有开发人员都将在 IDEA 中安装声纳插件,该插件将连接到该声纳立方体实例(例如 Jenkins 等的一些自动构建),因此所有人都将使用基于当前 PMD、Checkstyle 和 Findbugs 中设置的规则相同的规则(在 jenkins 构建中,这 3 个检查单独运行,理想的解决方案是仅运行 sonarqube 检查) …

findbugs checkstyle pmd sonarqube

5
推荐指数
1
解决办法
3904
查看次数

Java流-在第一次匹配后删除所有内容

我有一些 DTO 的链接哈希列表,其中包含 name (字符串)和 isActive (布尔)属性。我需要从头到尾迭代所有成员,并检查 isActive 中是否有任何成员具有错误值。当我找到这个元素时,我需要切断这个元素和列表的其余部分,并仅返回该元素之前的元素。

我想使用java流来解决这个问题。我尝试通过谓词使用流和过滤元素来检查元素是否处于活动状态,但这与我想要的逻辑不匹配。正如我所说,我需要找到第一个处于活动状态的元素,并将其及其后的所有内容从列表中删除。

如果我们在 LinkedHashSet<> 中有这个 ElementDto 列表

0 - name:test, isActive:true
1 - name:test2, isActive:true
2 - name:inActive, isActive:false
3 - name:activeAfterInactive, isActive:true
Run Code Online (Sandbox Code Playgroud)

预期输出将是包含元素 0,1 的列表

java java-stream

0
推荐指数
1
解决办法
435
查看次数

标签 统计

checkstyle ×1

findbugs ×1

java ×1

java-stream ×1

pmd ×1

sonarqube ×1