Eclipse 코드 줄 수


107

나는 Metrics 플러그인을 사용해 보았지만 훌륭하고 모든 것이지만 내 상사가 찾고있는 것이 아닙니다. 한 줄을 한 줄로 계산하고 "줄이 아니라 }스타일 선택"으로 계산하는 것을 원하지 않습니다. 또한 제공된 측정 항목에 대한 보고서 형식을 생성해야합니다. 이를위한 좋은 도구가 있습니까?


1
부수적 인 질문 : 이것은 당신의 소프트웨어 개발자들이 얼마나 잘 일하고 있는지를 보여주는 지표로 사용됩니까? 그렇다면 문자 / 비 공백 개수가 더 좋을 수 있습니다. 그럼에도 불구하고 정말 임의의 메트릭처럼 보입니다 ... 친구가 말했듯이 "일반적으로 문제를 해결하기 위해 더 많은 코드 라인이 동일한 문제를 해결하기 위해 더 적은 코드 라인보다 낫거나 나쁘지는 않습니다."
Sancarn

답변:


93

Eclipse Metrics Plugin을 설치합니다 . HTML 보고서를 작성하려면 (선택적 XML 및 CSV 사용) right-click a project -> Export -> Other -> Metrics.

공백 및 주석 전용 행을 무시하여 코드 행 메트릭을 조정하거나 원하는 경우 Javadoc을 제외 할 수 있습니다. 이렇게하려면에서 탭을 확인하십시오 Preferences -> Metrics -> LoC.

그게 다야. 중괄호를 제외하는 특별한 옵션은 없습니다 {}.

플러그인은 Number of Statements 라는 LoC에 대한 대체 메트릭을 제공합니다 . 저자는 이에 대해 다음과 같이 말합니다.

이 메트릭은 메서드의 문 수를 나타냅니다. 후자는 다른 형식화 ​​규칙과 관련하여 취약하기 때문에 코드 줄보다 더 강력한 측정이라고 생각합니다.

편집하다:

질문을 명확히하신 후 컴파일러 경고 또는 오류와 같은 실시간 측정 항목 위반에 대한보기가 필요하다는 점을 이해합니다. 상사를위한 보고서를 작성하려면보고 기능도 필요합니다. 위에서 설명한 플러그인은보고를 위해 메트릭을보고 싶을 때 내 보내야하기 때문에보고 용입니다.


정확히 내가 찾던 것과 멋진 내보내기 기능.
george_h dec

1
이 플러그인의 현재 버전 (3.14.1)은 Eclipse Luna (4.4)에서 작동하지 않는 것 같습니다. 놀랍게도 Sourceforge의 고대 Metrics 플러그인은 여전히 ​​작동합니다 ...
ejain

많은 사람들이 더 이상 작동하지 않는 것을보고,하지만 아무도 ... 소스 포지에서 버그를 파일 없습니다
토마스 웰러

6
네. 에서 옵션을 볼 수 없습니다. right click a project -> Exporteclipse 마켓 플레이스에서 직접 플러그인을 설치했습니다. 버전은- Eclipse Metrics 3.12.0입니다. 누구든지 도와주세요. 감사!
OverrockSTAR


263

항상 "무력한 힘"이 있습니다.

  1. 검색-> 파일

  2. "텍스트 포함"->에 다음을 입력합니다 ^.*$. 그런 다음 "정규식"확인란을 선택하십시오.

  3. "파일 이름 패턴"에 다음 입력-> *.java

  4. "검색"을 클릭하십시오

  5. "검색"탭에서 일치하는 수를 확인하십시오.


11
이것은 내가 찾던 것과 정확히 일치했습니다. 대괄호 또는 멋진 것을 제외하지 않지만 플러그인없이 내가 찾고 있던 대답을 제공합니다. 감사!
누가 복음

24
또한 사용할 수 있으며 \n[\s]*빈 줄도 무시합니다
Ascalonian

3
다른 플러그인이 필요없는 아주 좋은 솔루션입니다! +1
Stephan

2
최신 (네온) 일식하지만 통계는 플러그인이 작동하지 않습니다
아나톨리 Yakimchuk에게

2
@omerio 주석도 입력해야하며 모든 소스 코드의 필수 부분입니다. 그러한 유도를 세지 않으면 중요하지 않거나 맹목적인 텍스트 일뿐입니다. 이는 심각한 실수입니다.
Axel Amthor 16.12.12

23

OSX 또는 * NIX에서 사용하는 경우

* .java 파일에서 Java 코드의 모든 실제 행을 가져옵니다.

find . -name "*.java" -exec grep "[a-zA-Z0-9{}]" {} \; | wc -l

* .java 파일에서 모든 줄을 가져옵니다. 여기에는 빈 줄과 주석이 포함됩니다.

find . -name "*.java" -exec cat | wc -l

파일 당 정보를 가져 오면 [파일 경로 + ","+ 줄 수]가 제공됩니다.

find . -name "*.java" -exec wc -l {} \;

얻을 OSX I의 첫 번째 명령을 실행 : GREP : 잘못된 문자 범위 0
omerio

이것은 나를 위해 일했습니다. -name "* .java"| xargs 고양이 | grep '[alnum]'| 화장실 -l
omerio

2
해야find . -name "*.java" | xargs cat | grep "[a-zA-Z0-9{}]" | wc -l
warrior107의

8

또 다른 방법은 예를 들어 LocMetrics 와 같은 다른 loc 유틸리티를 사용하는 것 입니다.
또한 다른 많은 loc 도구를 나열 합니다 . 이클립스와 통합은 (는 함께있을 것처럼 항상되지 않을 것 Metrics2 이보다 최신 버전이기 때문에 체크 아웃 할 수 메트릭 ), 그러나 적어도 그 도구의 기간에 이유가있다 논리적 라인 (합산하여 계산 터미널 세미콜론 및 터미널 중괄호).
또한 eclipse-metrics 가 당신이 기대하는 것에 더 잘 적응했는지 확인할 수 있습니다.


7

또 다른 도구는 Google Analytix로 , 오류 발생시 프로젝트를 빌드 할 수없는 경우에도 측정 항목을 실행할 수 있습니다.


이 사이트는 이전 버전의 이클립스에만 해당한다고 말하지만 Luna에서는 잘 작동합니다. 감사합니다.
CamHart 2015

7

Eclipse에서 코드 줄을 계산하는 한 가지 가능한 방법 :

검색 / 파일 ... 메뉴를 사용하여 파일 검색 탭을 선택하고 텍스트 포함에 \ n [\ s] *를 지정하고 (빈 줄은 계산하지 않음) 정규식을 선택합니다.

모자 팁 : www.monblocnotes.com/node/2030


와우, 정말 천재입니다. 숫자로 지불하지 않는 한 빈 줄을 세지 않는 것이 좋습니다.
JohnnyB

1

소스 코드 줄을 셀 수있는 Eclipse 플러그인을 만들었습니다. Kotlin, Java, Java Script, JSP, XML, C / C ++, C # 및 기타 여러 파일 유형을 지원합니다.

좀 봐주세요. 모든 의견을 주시면 감사하겠습니다!

git-hub 저장소가 여기 있습니다.


0

ProjectCodeMeter는 설명 된대로 LLOC (코드의 논리 줄)를 정확히 계산합니다 (유효 줄만). 그것은 외부 코드 메트릭 도구eclipse에 통합 되지만 실시간은 아니지만 보고서를 생성합니다. 실제로 복잡성, 산술 복잡, 하드 코딩 된 문자열, 숫자 상수와 같은 많은 소스 코드 메트릭을 계산합니다. .


0

정적 분석을 위해, 내가 사용하고 실행 SonarQube 추천 한 단지 모두에 대해 당신이 가능하게 할 수있는 측정다양한 언어를 , 그리고 기본 버전 무료입니다 (당신은 언어 내가 좋겠의 종류를 분석하기 위해 지불해야 내 머리에 총으로 만 코드를 입력합니다).

소스 코드 저장소에서 분석을 실행하는 웹 앱으로 설치해야하지만 Eclipse 플러그인도 있습니다.

일회성으로 프로젝트에 몇 줄의 코드가 있는지 알고 싶다면 과잉입니다. 시간을 통해 메트릭을 추적하고, 프로젝트간에 비교하고, 임계 값을 초과 할 때 경고를 발생시키는 등 환상적입니다.

공개 : 저는 SonarSource와 재정적 관계가 없습니다.


0

가장 먼저해야 할 일은 "코드 라인"(LOC)의 정의를 결정하는 것입니다. 두 질문 모두

} 하나만있는 줄을 한 줄로 계산하고 그는 "줄이 아니라 스타일 선택"으로 계산하는 것을 원하지 않습니다.

그리고 답변에서, 예를 들어,

공백 및 주석 전용 행을 무시하여 코드 행 메트릭을 조정하거나 원하는 경우 Javadoc을 제외 할 수 있습니다.

사람들이 코드 줄을 구성하는 것에 대해 서로 다른 의견을 가지고 있음을 알 수 있습니다. 특히, 사람들은 종종 코드 줄 수 또는 명령문 수를 원하는지에 대해 부정확합니다. 예를 들어, 다음과 같은 매우 긴 문장으로 채워진 줄이 있다면 무엇을보고할까요 (1 LOC 또는 수백 개의 문장)?

{ a = 1; b = 2; if (a==c) b++; /* etc. for another 1000 characters */ }

그리고 누군가 LOC라고 부르는 것이 무엇인지 물어 보면 "LOC에 대한 나의 정의는 Metrics2의 정의입니다"라고해도 대답 할 수 있는지 확인하십시오. 일반적으로 가장 일반적으로 형식이 지정된 코드 (내 예제와 달리)의 경우 인기있는 도구는 숫자가 상당히 유사하므로 Metrics2, SonarQube 등은 일관되게 사용하는 한 모두 괜찮습니다. 즉, 하나의 도구를 사용하여 일부 코드의 LOC를 계산하지 말고 해당 값을 다른 도구로 측정 한 해당 코드의 최신 버전과 비교하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.