메뉴 건너뛰기

현재 Maven Java 프로젝트를 Jenkins + PMD를 사용하여 정적 분석을 수행하고 있습니다. 


Jenkins에서는 pmd:pmd, pmd:cpd 두 개의 goal을 추가했지만, 

pmd.xml 파일과 cpd.xml 파일이 비어 있어 항상 PMD 정적 분석 결과는 0으로 나옵니다. 

pom.xml에서 pmd ruleset을 별도로 추가해두어도 계속 같은 문제가 발생하네요.


아래 포스트와 동일하게 작성하였습니다.

http://pseg.or.kr/pseg/infouse/4840


해결책 좀 알려주세요.

TAG •

Who's Tom

profile

저는 2009년 ALM의 세계에 뛰어 들었습니다. 

지금은 ALM, DevOps, 공학 프로세스, 요구공학, 테스트 엔지니어링 등 다양한 영역에 관심이 많습니다.

http://www.curvc.com 

?
Comment '1'
  • profile
    Tom 2015.08.31 21:15

    해당 문제가 해결될까 싶어서, Jenkins 버전 업그레이드와 Maven Plugin 버전을 업데이트 했습니다. 

    아래와 같이 구체적인 에러가 발생하네요.


    [INFO] --- maven-pmd-plugin:3.5:pmd (default-cli) @ calculator ---
    [PMD] Finding all files that match the pattern pmd.xml
    [PMD] Parsing 1 file in C:\Jenkins\jobs\Calculator Code Sonar Build\workspace\target
    [PMD] Successfully parsed file C:\Jenkins\jobs\Calculator Code Sonar Build\workspace\target\pmd.xml of module calculator with 0 unique warnings and 0 duplicates.
    java.io.IOException: Remote call on channel failed
    	at hudson.remoting.Channel.call(Channel.java:786)
    	at hudson.remoting.RemoteInvocationHandler.invoke(RemoteInvocationHandler.java:250)
    	at com.sun.proxy.$Proxy5.execute(Unknown Source)
    	at hudson.maven.MavenBuildProxy$Filter.execute(MavenBuildProxy.java:207)
    	at hudson.plugins.analysis.core.HealthAwareReporter.registerResultsOnMaster(HealthAwareReporter.java:361)
    	at hudson.plugins.analysis.core.HealthAwareReporter.postExecute(HealthAwareReporter.java:352)
    	at hudson.maven.Maven3Builder$MavenExecutionListener.recordMojoEnded(Maven3Builder.java:634)
    	at hudson.maven.Maven3Builder$MavenExecutionListener.mojoSucceeded(Maven3Builder.java:615)
    	at hudson.maven.Maven3Builder$JenkinsEventSpy.onEvent(Maven3Builder.java:308)
    	at org.apache.maven.eventspy.internal.EventSpyDispatcher.onEvent(EventSpyDispatcher.java:108)
    	at org.apache.maven.eventspy.internal.EventSpyExecutionListener.mojoSucceeded(EventSpyExecutionListener.java:131)
    	at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:87)
    	at org.apache.maven.lifecycle.internal.DefaultExecutionEventCatapult.fire(DefaultExecutionEventCatapult.java:42)
    	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:227)
    	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
    	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
    	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
    	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
    	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
    	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
    	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
    	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
    	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
    	at org.jvnet.hudson.maven3.launcher.Maven32Launcher.main(Maven32Launcher.java:132)
    	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:497)
    	at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
    	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
    	at jenkins.maven3.agent.Maven32Main.launch(Maven32Main.java:186)
    	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:497)
    	at hudson.maven.Maven3Builder.call(Maven3Builder.java:136)
    	at hudson.maven.Maven3Builder.call(Maven3Builder.java:71)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:121)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:49)
    	at hudson.remoting.Request$2.run(Request.java:326)
    	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    	at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.LinkageError: Failed to load com.google.common.collect.AbstractMapBasedMultimap
    	at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:342)
    	at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:251)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at hudson.remoting.MultiClassLoaderSerializer$Input.resolveClass(MultiClassLoaderSerializer.java:113)
    	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.readArray(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.readObject(Unknown Source)
    	at hudson.remoting.UserRequest.deserialize(UserRequest.java:185)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:99)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:49)
    	at hudson.remoting.Request$2.run(Request.java:326)
    	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    	at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
    	at java.util.concurrent.FutureTask.run(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    	at ......remote call to channel(Native Method)
    	at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1413)
    	at hudson.remoting.UserResponse.retrieve(UserRequest.java:221)
    	at hudson.remoting.Channel.call(Channel.java:778)
    	... 44 more
    Caused by: java.lang.IllegalAccessError: class com.google.common.collect.AbstractMapBasedMultimap cannot access its superclass com.google.common.collect.AbstractMultimap
    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClass(Unknown Source)
    	at java.lang.ClassLoader.defineClass(Unknown Source)
    	at hudson.remoting.RemoteClassLoader.loadClassFile(RemoteClassLoader.java:338)
    	at hudson.remoting.RemoteClassLoader.findClass(RemoteClassLoader.java:251)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.ClassLoader.loadClass(Unknown Source)
    	at java.lang.Class.forName0(Native Method)
    	at java.lang.Class.forName(Unknown Source)
    	at hudson.remoting.MultiClassLoaderSerializer$Input.resolveClass(MultiClassLoaderSerializer.java:113)
    	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    	at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    	at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.readArray(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    	at java.io.ObjectInputStream.readSerialData(Unknown Source)
    	at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    	at java.io.ObjectInputStream.readObject0(Unknown Source)
    	at java.io.ObjectInputStream.readObject(Unknown Source)
    	at hudson.remoting.UserRequest.deserialize(UserRequest.java:185)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:99)
    	at hudson.remoting.UserRequest.perform(UserRequest.java:49)
    	at hudson.remoting.Request$2.run(Request.java:326)
    	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
    	at jenkins.util.ContextResettingExecutorService$2.call(ContextResettingExecutorService.java:46)
    	at java.util.concurrent.FutureTask.run(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    [INFO] 
    [INFO] --- maven-pmd-plugin:3.5:cpd (default-cli) @ calculator ---
    [DRY] Skipping reporter since build result is FAILURE[INFO] 

 


  1. 1
    08월 31일
    2015

    SonarQube Plugin 설치 후 Jenkins Build Error

    SonarQube에서 정적분석을 위해 플러그인 설치 후 Jenkins에서 빌드에러가 발생합니다. 설치한 플러그인은 다음과 같습니다. sonar-cobertura-plugin-1.6.3.jar sonar-findbugs-plugin-3.2.jar sonar-java-plugin-3.5.jar sonar-pmd-plugin-2.4.1.jar s...
    ByTom Reply1 Views14229
    Read More
  2. 1
    08월 29일
    2015

    Jenkins + PMD + Maven 연동 문제

    현재 Maven Java 프로젝트를 Jenkins + PMD를 사용하여 정적 분석을 수행하고 있습니다. Jenkins에서는 pmd:pmd, pmd:cpd 두 개의 goal을 추가했지만, pmd.xml 파일과 cpd.xml 파일이 비어 있어 항상 PMD 정적 분석 결과는 0으로 나옵니다. pom.xml에...
    ByTom Reply1 Views12844
    Read More
  3. 3
    08월 28일
    2015

    Redmine 구 버전 다운로드 어디서 받나요?

    Redmine 혹은 Bitnami Redmine 구버전을 다운로드 받는 곳이 따로 있을까요? 현재 Bitnami Redmine 구버전 찾고 있는데.. 잘 보이지가 않네요.
    ByTom Reply3 Views11718
    Read More
  4. 1
    08월 28일
    2015

    Jenkins + SonarQube 연동 중 빌드 에러

    Jenkins와 SonarQube를 연동하고 있습니다. 아래와 같이 문제가 발생하네요. SVN 관련 문제인거 같은데.. 해결 방법이 있을까요? [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli) on project calcu...
    ByTom Reply1 Views17257
    Read More
  5. 3
    08월 25일
    2015

    Bitnami Redmine 전체 백업 방법

    Bitnami Redmine은 기본적으로 Bitnami stack 설치 디렉토리를 copy하거나 압축함으로써 백업을 할 수 있습니다. Windows의 경우 : 실행되고 있는 전체 서버를 중지합니다. Bitnami stack이 설치되어 있는 데렉토리를 압축합니다. 압축파일을 안전한 곳에 보관...
    ByTom Reply3 Views17222
    Read More
  6. 1
    08월 25일
    2015

    Bitnami Redmine의 Default URL을 Root로 설정하는 방법

    Bitnami Redmine 설치 후에 기본적으로 아래와 같은 형태의 URL로 접속됩니다. http://localhost/redmine redmine 없이 root 즉 아래와 같이 바로 접속하고 싶습니다. http://localhost 어떻게 해야 하나요?
    ByTom Reply1 Views17043
    Read More
  7. 1
    08월 25일
    2015

    Bitnami Redmine 기본(default) URL 변경 방법

    Bitnami Redmine의 기본(default) URL은 redmine으로 설정되어 있습니다. http://localhost/redmine 이를 다음과 같이 변경하고 싶습니다. http://localhost/pm 어떻게 해야할까요?
    ByTom Reply1 Views17996
    Read More
  8. 1
    08월 25일
    2015

    Redmine 이슈 ID Prefix 설정 못하나요?

    Redmine의 이슈 ID를 프로젝트마다 다른 Prefix를 가져가고 싶은데 가능한지요? 가능하다면 방법을 알고 싶습니다.
    ByTom Reply1 Views11024
    Read More
  9. 3
    08월 24일
    2015

    Bitnami Redmine CKEditor 설치 오류

    Bitnami Redmine 3.1 설치 후에 Plugin으로 CKEditor를 설치하고 있습니다. 하지만 bundle install --without development test 후에 아래와 같이 에러 메시지가 나타나네요. 혹시 해결책일 있을까요? C:\redmine\apps\redmine\htdocs\plugins\red...
    ByTom Reply3 Views19929
    Read More
  10. 1
    08월 24일
    2015

    SVN 저장소 생성 후 인증 문제

    아래 문서에 따라 SVN 저장소를 생성하고 사용자를 등록 했습니다. http://pseg.or.kr/pseg/index.php?mid=infouse&document_srl=4728 하지만 totoiseSVN을 이용하여 프로젝트를 checkout 후에 소스를 넣고 Commit을 할려고 하니깐 Commit ...
    ByTom Reply1 Views10687
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 12 Next
/ 12