python自定义ru的SonarQube类notfoundexception

2024-04-19 18:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经配置了我的SonarQube服务器和我的python项目,以便进行各种分析。。。(很正常…)

我要保证所有的文件都有版权保护。使用sslr-python-toolkit-1.5应用程序,我成功地创建了规则XPath,并且在SonarQube服务器上创建并激活了这些规则。在

但是,当我启动声纳分析时,我有一个堆栈跟踪:

ERROR: Error during SonarQube Scanner execution
org.sonar.api.utils.SonarException: Unable to initialize the XPath engine, perhaps because of an invalid query: //FILE_INPUT/STATEMENT[0][@tokenValue[not(contains(.,"''' Copyright .... '''"))]]
        at org.sonar.squidbridge.checks.AbstractXPathCheck.init(AbstractXPathCheck.java:47)
        at org.sonar.squidbridge.AstScanner.scanFiles(AstScanner.java:82)
        at org.sonar.plugins.python.PythonSquidSensor.execute(PythonSquidSensor.java:106)
        at org.sonar.batch.sensor.SensorWrapper.analyse(SensorWrapper.java:57)
        at org.sonar.batch.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:58)
        at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:50)
        at org.sonar.batch.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:83)
        at org.sonar.batch.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:192)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.batch.scan.ProjectScanContainer.scan(ProjectScanContainer.java:241)
        at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:236)
        at org.sonar.batch.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:234)
        at org.sonar.batch.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:226)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.batch.task.ScanTask.execute(ScanTask.java:47)
        at org.sonar.batch.task.TaskContainer.doAfterStart(TaskContainer.java:86)
        at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:142)
        at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:127)
        at org.sonar.batch.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:106)
        at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:119)
        at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:62)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
        at com.sun.proxy.$Proxy0.execute(Unknown Source)
        at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
        at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
        at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:110)
        at org.sonarsource.scanner.cli.Main.execute(Main.java:74)
        at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: java.lang.RuntimeException: org.jaxen.JaxenException: org.jaxen.saxpath.base.XPathReader
        at com.google.common.base.Throwables.propagate(Throwables.java:156)
        at com.sonar.sslr.xpath.api.AstNodeXPathQuery.<init>(AstNodeXPathQuery.java:39)
        at com.sonar.sslr.xpath.api.AstNodeXPathQuery.create(AstNodeXPathQuery.java:103)
        at org.sonar.squidbridge.checks.AbstractXPathCheck.init(AbstractXPathCheck.java:45)
        ... 33 more
Caused by: org.jaxen.JaxenException: org.jaxen.saxpath.base.XPathReader
        at org.jaxen.BaseXPath.<init>(BaseXPath.java:125)
        at org.jaxen.BaseXPath.<init>(BaseXPath.java:142)
        at com.sonar.sslr.xpath.api.AstNodeXPathQuery.<init>(AstNodeXPathQuery.java:37)
        ... 35 more
Caused by: org.jaxen.saxpath.SAXPathException: org.jaxen.saxpath.base.XPathReader
        at org.jaxen.saxpath.helpers.XPathReaderFactory.createReader(XPathReaderFactory.java:152)
        at org.jaxen.saxpath.helpers.XPathReaderFactory.createReader(XPathReaderFactory.java:110)
        at org.jaxen.BaseXPath.<init>(BaseXPath.java:113)
        ... 37 more
Caused by: java.lang.ClassNotFoundException: org.jaxen.saxpath.base.XPathReader
        at org.sonar.classloader.ParentFirstStrategy.loadClass(ParentFirstStrategy.java:39)
        at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:87)
        at org.sonar.classloader.ClassRealm.loadClass(ClassRealm.java:76)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:348)
        at org.jaxen.saxpath.helpers.XPathReaderFactory.createReader(XPathReaderFactory.java:137)
        ... 39 more
  1. 我试着用命令行启动声纳扫描仪

    /usr/bin/java-cp sslr-python-toolkit-1.5。jar:sonar-scanner-cli-2.8.jar-Dscanner.home=/opt/sonar-扫描仪-Dproject.home=/home/dev/workspaces/pepytorg.sonarsource.scanner.主菜单

但同样的结果。。。。在

  1. 我把这两个jar解压到一个目录中,没有任何变化。。。在
  2. 经过一番搜索,我找到了一些关于sonar_SCANNER_OPTS环境变量的sonar java库的帖子。。。事件,如果环境变量被使用(在声纳运行日志中看到),但没有解决问题。。。在
  3. 我将sslr-python-toolkit-1.5.jar库放在sonar主目录的lib目录中,但没有成功

我没主意了。。。在

如何将sslr python库添加到sonar scanner类路径中,以便使用自定义规则分析代码?在

科尔曼德尔


Tags: orgapiexecuteinitbatchjavaatscanner