2013-08-25 1 views
4

Я работаю над проектом Jenkins на общем сервере, управляемом моей школой. Мой build.xml файл имеет следующие соответствующие шаги для выполнения FindBugs:Ошибка: «Копирование исходного файла <Unknown>»

<target name="findbugs"> 
    <echo>FindBugs Starting:</echo> 

    <available file="${findbugs.dir}/findbugs.jar" property="findbugs.available" /> 
    <fail unless="findbugs.available" message="Error: FINDBUGS_HOME not set or findbugs.jar not found." /> 

    <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpath="${findbugs.dir}/findbugs-ant.jar" /> 
    <findbugs home="${findbugs.dir}" 
     workHard="true" 
     output="xml:withMessages" 
     outputFile="${report.dir}/findbugs.xml" 
     excludefilter="findbugs-exclusions.xml" 
     sourcePath="${src.dir}" > 
     <class location="${classes.dir}" /> 
     <auxClasspath> 
      <fileset file="${lib.dir}/junit.jar" /> 
     </auxClasspath> 
    </findbugs> 

    <echo>FindBugs finished</echo> 
</target> 

При выполнении вывода на консоль Дженкинс не содержит ошибок, но показывает чистое исполнение, насколько я могу сказать:

 [echo] FindBugs Starting: 
[findbugs] Executing findbugs from ant task 
[findbugs] Running FindBugs... 
[findbugs] Warnings generated: 24 
[findbugs] Calculating exit code... 
[findbugs] Setting 'bugs found' flag (1) 
[findbugs] Exit code set to: 1 
[findbugs] Java Result: 1 
[findbugs] Output saved to report/findbugs.xml 
    [echo] FindBugs finished 

В результатах предупреждений FindBugs на вкладке «Файлы», есть файл в списке под названием «», и в этой детали я вижу следующее:

com.ewenicorn.reddit.dailyprogrammer.utility.CharacterUtilityTest.testShiftCharacter() invokes inefficient new Character(char) constructor; use Character.valueOf(char) instead 
01 Copying the source file 'com/ewenicorn/reddit/dailyprogrammer/utility/<Unknown>' from the workspace to the build folder '/home/VLE/1257538/jenkins/jobs/RedditDailyProgrammer/builds/2013-08-24_16-50-28/workspace-files/f2082c83.tmp' on the Jenkins master failed. 
02 Seems that the path is relative, however an absolute path is required when copying the sources. 
03 Is the file '<Unknown>' contained more than once in your workspace? 
04 Is the file 'com/ewenicorn/reddit/dailyprogrammer/utility/<Unknown>' a valid filename? 
05 If you are building on a slave: please check if the file is accessible under '$JENKINS_HOME/[job-name]/com/ewenicorn/reddit/dailyprogrammer/utility/<Unknown>' 
06 If you are building on the master: please check if the file is accessible under '$JENKINS_HOME/[job-name]/workspace/com/ewenicorn/reddit/dailyprogrammer/utility/<Unknown>' 
07 hudson.util.IOException2: remote file operation failed: com/ewenicorn/reddit/dailyprogrammer/utility/<Unknown> at [email protected] 
08 at hudson.FilePath.act(FilePath.java:905) 
09 at hudson.FilePath.act(FilePath.java:882) 
10 at hudson.FilePath.copyTo(FilePath.java:1776) 
11 at hudson.plugins.analysis.core.HealthAwareRecorder.copyFilesWithAnnotationsToBuildFolder(HealthAwareRecorder.java:398) 
12 at hudson.plugins.analysis.core.HealthAwarePublisher.perform(HealthAwarePublisher.java:165) 
13 at hudson.plugins.analysis.core.HealthAwareRecorder.perform(HealthAwareRecorder.java:333) 
14 at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 
15 at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804) 
16 at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776) 
17 at hudson.model.Build$BuildExecution.post2(Build.java:183) 
18 at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:726) 
19 at hudson.model.Run.execute(Run.java:1628) 
20 at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) 
21 at hudson.model.ResourceController.execute(ResourceController.java:88) 
22 at hudson.model.Executor.run(Executor.java:247) 
23 Caused by: java.io.FileNotFoundException: com/ewenicorn/reddit/dailyprogrammer/utility/<Unknown> (No such file or directory) 
24 at java.io.FileInputStream.open(Native Method) 
25 at java.io.FileInputStream.<init>(FileInputStream.java:137) 
26 at hudson.FilePath$34.invoke(FilePath.java:1781) 
27 at hudson.FilePath$34.invoke(FilePath.java:1776) 
28 at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2417) 
29 at hudson.remoting.LocalChannel.call(LocalChannel.java:45) 
30 at hudson.FilePath.act(FilePath.java:898) 
31 ... 14 more 

Я ищу, чтобы разрешить эту ошибку, поэтому любая помощь доступна, особенно потому, что я ничего не нашел от предыдущих людей, исследующих эту проблему. Если необходима дополнительная структура, полный источник и двоичные файлы файла можно найти по адресу https://github.com/jenrmagas/RedditDailyProgrammer, и он должен работать из коробки для сборки с Ant.

+0

Я создал работу фристайла jenkins для вашего проекта git, добавил сборку муравьев с целевым «основным», добавил действие сборки postbugs post, а jenkins (1.525) создал граф findbugs. У меня также есть файл «com.ewenicorn.reddit.dailyprogrammer.utility - File », но он не создает проблем. Не могли бы вы указать: версию вашего jenkins, используемую версию findbugs, вашу платформу, независимо от того, используете ли вы распределенную сборку или нет. Примечание: Мне пришлось редактировать src/com/ewenicorn/reddit/dailyprogrammer/промежуточный/неполный/Problem011UpsideUpNumbers.java, поскольку он содержит символы не UTF-8. – coffeebreaks

+0

Спасибо за начало. Я согласен с тем, что проблема011UpsideUpNumbers.java имеет проблемы, и я сохраняю ее там сейчас как пример проблемы для исправления позже (часть проекта, и это не должно повлиять на это). Во всяком случае, я работаю над Jenkins 1.528 с FindBugs 4.50, теоретически на RedHat или эквивалентном дистрибутиве (хотя я не вижу его, у меня определенно есть NIX-подобные пути). Я фактически обновился до последних плагинов Jenkins +, которые я мог избежать, чтобы избежать проблем с версией. Это была также фристайлная работа, ничего необычного. В результатах я вижу 1 «Предупреждение», что вызывает озабоченность. – jenrmagas

+0

У меня такая же проблема, у меня много проблем и нет ответа. Тем не менее, я обнаружил, что если вы нажмете на ссылку «предупреждения» в левом столбце, а не нажмете на диаграмме, а затем нажмите «новую» вкладку, вы можете перейти к коду. Это единственный способ, который работает для меня. Не могли бы вы подтвердить, работает ли он на вас? Благодарю. – Mawg

ответ

0

«Неизвестный исходный файл», скорее всего, из-за компиляции кода без отладочной информации.