我正在为 SonarQube 运行一个简单的 Ant 脚本,并出现以下错误:
FileNotFoundException: C:\Users\c5187668\sap\simpleAnt.sonar\batch\sonar-batch-maven-compat-5.1.2.jar|99845a2f47eaef85b29978725f82c50c"
- 声纳库贝服务器版本 5.1.2
- Apache Ant(TM) 版本 1.9.6 编译于 June 29 2015
- 声纳蚂蚁任务版本:2.0
- Java 1.6 - 所以,我们不能使用现代版本的Sonar Ant。
可以以某种方式修复吗?有什么想法吗?
蚂蚁脚本:
<project name="sonar build" default="Sonar" basedir="." xmlns:sonar="antlib:org.sonar.ant">
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<classpath path="sonar-ant-task.jar"/>
</taskdef>
<!-- Out-of-the-box those parameters are optional -->
<property name="sonar.jdbc.url" value="dbc:mysql://?????:3306/sonardb?useUnicode=true;characterEncoding=utf8" />
<property name="sonar.jdbc.driverClassName" value="com.mysql.jdbc.Driver" />
<property name="sonar.jdbc.username" value="?????" />
<property name="sonar.jdbc.password" value="?????" />
<!-- Additional Sonar configuration (PMD need 1.5 when using annotations)-->
<property name="sonar.java.source" value="1.6"/>
<property name="sonar.java.target" value="1.6"/>
<property name="sonar.projectName" value="SonarBuild"/>
<property name="sonar.projectVersion" value="2.0" />
<!-- SERVER ON A REMOTE HOST -->
<property name="sonar.host.url" value="http://??????" />
<target name="Sonar">
<sonar:sonar />
</target>
我收到以下错误:
BUILD FAILED C:Usersc5187668sapsimpleAntbuild.xml:17:
java.lang.IllegalStateException: Fail to download libraries from
server
at org.sonar.runner.Bootstrapper.downloadBatchFiles(Bootstrapper.java:166)
at org.sonar.runner.Bootstrapper.createClassLoader(Bootstrapper.java:89)
at org.sonar.runner.Runner.createClassLoader(Runner.java:229)
at org.sonar.runner.Runner.execute(Runner.java:151)
at org.sonar.ant.SonarTask.launchAnalysis(SonarTask.java:93)
at org.sonar.ant.SonarTask.execute(SonarTask.java:75)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:293)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1405)
at org.apache.tools.ant.Project.executeTarget(Project.java:1376)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1260)
at org.apache.tools.ant.Main.runBuild(Main.java:853)
at org.apache.tools.ant.Main.startAnt(Main.java:235)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:285)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:112) Caused
by: java.lang.IllegalStateException: Fail to download the file:
http://???????/batch/sonar-batch-maven-compat-5.1.2.jar|99845a2f47eaef85b29
978725f82c50c
at org.sonar.runner.Bootstrapper.remoteContentToFile(Bootstrapper.java:115)
at org.sonar.runner.Bootstrapper.downloadBatchFiles(Bootstrapper.java:161)
... 22 more Caused by: java.io.FileNotFoundException: C:Usersc5187668sapsimpleAnt.sonarbatchsonar-batch-maven-compat-5.1.2.jar|99845a2f47eaef85b29978725f82c50c
(The filename, directory name, or volume label syntax is incorrect)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:194)
at org.sonar.runner.Bootstrapper.remoteContentToFile(Bootstrapper.java:109)
... 23 more
Total time: 0 seconds
附言问号?????我隐藏了真实的服务器名称和凭据。
您的 Ant Task 版本 (2.0) 与您的 SonarQube 版本不兼容。此兼容性矩阵显示 v2.2 是自 SonarQube 3.7 以来的最低要求(2.4 是 SonarQube 4.5+ 的最佳选择)。
您应该升级 SonarQube Scanner for Ant,并使用受支持的 Java 版本。
你告诉 Ant 你的 SonarQube 服务器正在以 http://??????
运行,因此脚本无法(完全可以理解)从服务器下载所需的资源。
修复此问题:
<property name="sonar.host.url" value="http://??????" />
该值应该是您用于浏览SonarQube服务器主页的URL。
PS:您还必须修复sonar.jdbc.username
并sonar.jdbc.password