有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

SonarQube中使用Java的MethodInvocationTree用法

要求标记所有出现的HttpSession session = request.getSession();

我正在用这棵树。友善的方法nodesToVisit中的方法调用,用于拦截所有方法调用。我正在成功获取HttpSession的实例

HttpSession session1 = request.getSession(); // Noncompliant
HttpSession session2 = request.getSession(true); // Noncompliant

但是树的符号类型是!未知符号

感谢您在这里的任何意见。是sonarqube analyzer识别javax所需的任何特定设置。servlet软件包


共 (1) 个答案

  1. # 1 楼答案

    由于类路径中缺少库,符号类型未知。我们需要在pom中添加依赖项。自定义插件的xml

    1. 当通过Junit测试源代码分析时,我们必须使用 maven依赖插件,用于提供依赖JAR
    2. 在sonarqube中部署插件后,我们需要添加 声纳项目中的以下属性。财产

    声纳。JAVAlibraries=lib/*。罐子

    声纳。JAVA测验libraries=lib/*。罐子

    下面是pom中添加的插件maven依赖插件。xml

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.10</version>
        <executions>
            <execution>
                <id>copy</id>
                <phase>test-compile</phase>
                <goals>
                    <goal>copy</goal>
                </goals>
                <configuration>
                    <artifactItems>
                        <artifactItem>
                            <groupId>javax</groupId>
                            <artifactId>javaee-api</artifactId>
                            <version>7.0</version>
                            <type>jar</type>
                        </artifactItem>
                    </artifactItems>
                    <outputDirectory>${project.build.directory}/test-jars</outputDirectory>
                </configuration>
            </execution>
        </executions>
    </plugin>