SONAR C # 프로젝트 간단한 Java Runner를 사용하여 여러 모듈이있는 프로젝트

StackOverflow https://stackoverflow.com//questions/12695651

문제

C # 프로젝트 (유일한 플러그인 유일한 플러그인가 C # 핵심 및 C # FX COP)가있는 SONAR 3.2를 사용하고 간단한 Java Runner를 사용합니다.

단일 프로젝트가있는 솔루션에서 잘 작동했지만 2 개의 프로젝트가있는 솔루션을 사용하여 분석하려고했을 때 항상 다음 오류가 발생합니다.

    17:01:41.775 INFO  .s.b.b.ProjectModule - -------------  Analyzing Project1
    17:01:42.055 INFO  .s.b.ProfileProvider - Selected quality profile : [name=Custom C#,language=cs]
    17:01:42.075 INFO  nPluginsConfigurator - Configure maven plugins...
    17:01:42.125 INFO        org.sonar.INFO - Compare to previous analysis
    17:01:42.155 INFO        org.sonar.INFO - Compare over 5 days (2012-09-27)
    17:01:42.175 INFO        org.sonar.INFO - Compare over 30 days (2012-09-02)
    17:01:42.215 INFO  .b.p.SensorsExecutor - Initializer ProjectFileSystemLogger...
    17:01:42.215 INFO  jectFileSystemLogger - Source directories:
    17:01:42.215 INFO  jectFileSystemLogger -   $(Solution folder)\Project1
    17:01:42.215 INFO  .b.p.SensorsExecutor - Initializer ProjectFileSystemLogger done: 0 ms
    17:01:42.225 INFO  .b.p.SensorsExecutor - Initializer CSharpProjectInitializer...
    17:01:42.225 INFO  .b.p.SensorsExecutor - Initializer CSharpProjectInitializer done: 0 ms
    17:01:42.255 INFO   o.s.p.cpd.CpdSensor - Detection of duplicated code is not supported for C#.
    Total time: 8.442s
    Final Memory: 5M/118M
    Exception in thread "main" org.sonar.runner.RunnerException: java.lang.NullPointerException
        at org.sonar.runner.Runner.delegateExecution(Runner.java:288)
        at org.sonar.runner.Runner.execute(Runner.java:151)
        at org.sonar.runner.Main.execute(Main.java:84)
        at org.sonar.runner.Main.main(Main.java:56)
    Caused by: java.lang.NullPointerException
        at org.sonar.plugins.csharp.api.sensor.AbstractRegularCSharpSensor.assembliesFound(AbstractRegularCSharpSensor.java:101)
        at org.sonar.plugins.csharp.api.sensor.AbstractRegularCSharpSensor.shouldExecuteOnProject(AbstractRegularCSharpSensor.java:81)
        at org.sonar.plugins.csharp.api.sensor.AbstractRuleBasedCSharpSensor.shouldExecuteOnProject(AbstractRuleBasedCSharpSensor.java:48)
        at org.sonar.api.batch.BatchExtensionDictionnary.shouldKeep(BatchExtensionDictionnary.java:109)
        at org.sonar.api.batch.BatchExtensionDictionnary.getFilteredExtensions(BatchExtensionDictionnary.java:99)
        at org.sonar.api.batch.BatchExtensionDictionnary.select(BatchExtensionDictionnary.java:57)
        at org.sonar.batch.phases.SensorsExecutor.execute(SensorsExecutor.java:57)
        at org.sonar.batch.phases.Phases.execute(Phases.java:93)
        at org.sonar.batch.bootstrap.ProjectModule.doStart(ProjectModule.java:139)
        at org.sonar.batch.bootstrap.Module.start(Module.java:83)
        at org.sonar.batch.bootstrap.BatchModule.analyze(BatchModule.java:131)
        at org.sonar.batch.bootstrap.BatchModule.analyze(BatchModule.java:126)
        at org.sonar.batch.bootstrap.BatchModule.doStart(BatchModule.java:121)
        at org.sonar.batch.bootstrap.Module.start(Module.java:83)
        at org.sonar.batch.bootstrap.BootstrapModule.doStart(BootstrapModule.java:121)
        at org.sonar.batch.bootstrap.Module.start(Module.java:83)
        at org.sonar.batch.Batch.execute(Batch.java:104)
        at org.sonar.runner.internal.batch.Launcher.executeBatch(Launcher.java:69)
        at org.sonar.runner.internal.batch.Launcher.execute(Launcher.java:61)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.sonar.runner.Runner.delegateExecution(Runner.java:285)
    ... 3 more

.

솔루션 폴더에는 다음 sonar-project.properties가 포함되어 있습니다.

# Project identification
sonar.projectKey=com.project.btg
sonar.projectVersion=1.0
sonar.projectName=BTG

# Info required for Sonar
sonar.sources=.
sonar.language=cs

sonar.dotnet.visualstudio.solution.file=Sonar.project.sln
sonar.dotnet.buildPlatform=x86
sonar.dotnet.buildConfiguration=Debug

sonar.modules=Project1,Project2

#modules specific configuration
Project1:sonar.sources=.\Project1
Project1:sonar.projectName=Project 1

Project2:sonar.sources=.\Project2
Project2:sonar.sources=Project 2
.

해결책은이 2 개의 프로젝트 만 수행합니다.

나는 각 프로젝트에 대한 sonar-project.properties에 modules 구성을 추가 시도했다 :

# Project identification
sonar.projectName=Project 1
.

내가 사용한 단일 프로젝트의 경우 :

# Project identification
sonar.projectKey=com.Project1
sonar.projectVersion=1.0
sonar.projectName=Project 1

# Info required for Sonar
sonar.sources=.
sonar.language=cs
.

나는 아주 간단한 것을 놓치지 만 이에 대한 많은 정보를 찾을 수 없었다.

누군가가 나를 도울 수 있다면 나는 추가 질문이 있습니다. C ++ 및 C # 프로젝트의 하이브리드 솔루션을 분석 할 수 있습니까?

감사합니다

도움이 되었습니까?

해결책

멀티 모듈의 지원은 C # 플러그인을 위해 내장되어 있으며, (및해서는 안됩니다)가 필요하지 않습니다.

sonar.modules=Project1,Project2

#modules specific configuration
Project1:sonar.sources=.\Project1
Project1:sonar.projectName=Project 1

Project2:sonar.sources=.\Project2
Project2:sonar.sources=Project 2
.

, 각 모듈 내부의 "sonar-project.properties"를 추가하거나 추가합니다.

C # 플러그인은 SLN 파일에 의존하여 모듈을 자동으로 검색합니다. 우리의 샘플 응용 프로그램 단일 "sonar-project.properties"파일로 Maven POM을 대체하십시오..

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top