2012-08-08 6 views
1

현재 Java 코드 기반의 대규모 (50+) 개발 팀을 위해 Sonar를 배포하고 있습니다. 나는 Sonar와 효과적인 작업 과정을 해결할 수 없었습니다. 여기에 몇 가지 문제는 다음과 같습니다 개발자가 중앙 서버에 대해 수중 음파 탐지기 주자를 사용하여 코드를 스캔 큰 팀에서 소나를 사용하는 가장 좋은 방법은?

  1. 경우

    : 그들은 클래스의 작은 세트에 관심이 있지만,
    1. 그들은 t의 코드를 업로드해야
      1. : 서로 다른 버전의
    2. 이클립스 플러그인, 다시 문제를 제기, 로컬 수중 음파 탐지기를 실행 사용과 같은 파일을 업로드 할 그들은 충돌 당신이
    3. 그것은 서버에 정의 된 잘못된 반응에 대한 지식이없는 특정 파일에만 관심이있는 동안 그것은 모든 코드를 분석 -, 그래서 당신은 불필요한 경고
  2. 나는 야간 빌드에서 수중 음파 탐지기를 통합
  3. 정신이되지만 개발자는 T + 1에서만 코드 문제를받습니다. 더 나쁜 - 개발자는 스캔되지 않은 코드를 체크인합니다. 우리는 워크 플로우를 달성 할 수있는 방법

:

  • 는 개발자가 특정 코드 전에 분석 할 수 있습니다 체크인
  • 합니까는 "재 개방"에 의해하지 부담 개발자 오탐 (false positive) 무시 된 파일
  • 개발자는 커밋되지 않은 파일에 대한 서로의 분석을 "덮어 쓰지"않습니다.
  • 체크 대상을 모니터링하는 표준 빌드 (Maven, SVN)와 통합
+0

Q : 대규모 코드베이스를 말할 때 - 각각 50 개의 Java 파일을 가진 100 개의 프로젝트 또는 5000 개의 Java 파일을 갖는 1 개의 프로젝트입니까? –

+0

[이 질문은] (http://stackoverflow.com/questions/11266854/can-sonar-plugin-exclusions-be-configured-for-local-analysis-without-a-local-ser) 도움이 될 수 있습니다. 기본적으로 로컬 PMD와 Checkstyle을 사용하십시오 –

+0

@Pulak - 각각 8 백개의 클래스로 구성된 8 개의 프로젝트입니다. 인용 된 대답은 내 문제를 해결하지 못했지만 감사합니다. –

답변

1

우리 팀에서 우리가 수행하는 작업은 코드가 공통 SVN에서 커밋 될 때마다 Jenkins가 sonar를 호출하도록 구성했기 때문입니다.

젠킨스에

우리는 작은 프로젝트 (이하 20 개 클래스)와 그가 관심 프로젝트와 함께 자신의 대시 보드 페이지를 만들 수 있습니다 각 프로그래머의 수천이있다.

을 또한, 당신은 메이븐과 젠킨스를 설정할 수 있도록 프로젝트는 서로에 달려있다. 변경 사항이 뷰 프로젝트 중 하나에서만 발생하면 (전체 빌드 프로세스에서 종종 발생) 완전 재 구축을 방지합니다.

+0

이것은 올바른 대답 일 수 있습니다. - 개발자가 일반적으로 체크인을하고 나중에 언제 쯤 소나 입력을 수신합니까? - 왜 많은 소규모 프로젝트가 필요한가요? 귀하의 특정 환경과 관련이 있습니까? 아니면 일부 jenkins-sonar 제한으로 인한 것입니까? –

+0

1. 예, 개발자는 체크인 (5 분에서 1 시간 후)되는 즉시 체크인하고 수중 음파 탐지기 결과를 수신합니다. 2. 소규모 프로젝트의 수는 소나 또는 젠킨스가 아닌 우리 환경에만 관련됩니다. – YMomb

+0

예를 들어 checkstyle의 경우 Maven Checkstyle 플러그인의 Maven 종속성으로 구성을 설정할 수 있다는 점에서 우리가 수행 한 작업입니다. 그런 다음 개발자는 체크인하기 전에 프로젝트 별 구성을 사용하여 로컬 checkstyle 규칙을 실행할 수 있습니다. 같은 패턴을 findbugs/sonar/pmd maven 플러그인에 설정할 수 있다고 생각합니다. – YMomb

관련 문제