2008-10-22 4 views
61

CACM의 기사에서 Doxygen이 Java (및 여러 다른 언어)에서도 작동한다는 것을 알았습니다. 그러나 Java는 이미 Javadoc 도구를 사용합니다. 어떤 방법으로 장단점을 설명 할 수 있습니까? 그들은 상호 배타적입니까? Doxygen을위한 Maven 플러그인이 있습니까?Doxygen 대 Javadoc

답변

64

Doxygen에는 JavaDoc에서 제공하지 않는 많은 기능이 있습니다 (예 : 계층 구조 및 협력 컨텍스트에 대한 클래스 다이어그램, 더 많은 요약 페이지, 별도의 페이지에서 @todo와 같은 추가 태그 지원 및 TeX 및 PDF 형식으로 출력을 생성 할 수있는 선택적 소스 코드 탐색 (문서와 상호 링크) 그것은 또한 시각적 인 사용자 정의를 많이 허용합니다.

Doxygen은 표준 JavaDoc 태그를 지원하므로 JavaDoc 주석이있는 모든 소스 코드에서 Doxygen을 실행할 수 있습니다. 다이어그램과 소스 코드 브라우징은 문서가 없어도 코드를 이해하는 데 도움이되므로 JavaDoc없이 소스 코드를 실행하는 것이 종종 가능합니다. JavaDoc 툴은 알려지지 않은 태그를 무시하기 때문에 JavaDoc 생성을 깨지 않으면 서 Doxygen 태그를 추가로 사용할 수도 있습니다.

이 모든 것을 말하면서 오랫동안 Doxygen을 사용하지 않았다는 것을 인정해야합니다. IDE를 요즘 많이 사용하는 경향이 있으며 일반적으로 JavaDoc을 HTML 페이지로 읽지 않고 소스 파일을 내 IDE로 가져 와서 JavaDoc 플라이 아웃을 생성하고 정의로 건너 뛸 수 있습니다. 그것은 Doxygen이 제공해야하는 것보다 훨씬 강력합니다. IDE 외부에 문서를 갖고 싶고 Java가 아닌 도구를 실행하면 Doxygen은 Java 코드를 변경할 필요가 없으므로 시험해 볼 가치가 있습니다.

+0

maven을 사용하면 javadocs를 집계하고 사이트 플러그인을 사용하여 상호 링크 할 수 있습니다. 또한 참조하는 클래스 다이어그램을 생성하는 데 사용할 수있는 UML 도크 렛이 있습니다. Doxygen은 대규모 프로젝트의 경우 매우 느릴 수 있으며 신속하게 진행하기 위해 많은 수의 후프가 필요합니다. – spy

15

Java를 처음 사용하고 Doxygen을 사용 해본 적이 있다면 Jadadoc에서 경험하게 될 학습 곡선을 줄여야 만 Java로 Doxygen을 사용할 수 있습니다. 이전에 Doxygen을 사용하지 않았다면 자바를 염두에두고 특별히 설계되었으므로 javadoc을 고수 할 것입니다. 둘 중 하나를 모르고 C++ (또는 다른 지원되는 언어)로 자바만큼 작업하면 Doxygen이 좋은 선택입니다. 두 언어 모두에서 사용할 수 있기 때문입니다.

두 도구는 비슷한 기능 세트와 함께 사용하기 쉽습니다. 두 제품 모두 NetBeans 및 Eclipse 용 플러그인이 있으며 (또는 사전 제작되어 있으므로) 의사 생성이 더욱 빨라졌습니다. 각각이 사용하는 주석 스타일에는 많은 겹침이 있지만 정확히 은 같지 않으므로 서로 섞기가 어려울 수 있습니다 (모두를 알고 있어야합니다. 제외). 하나 또는 다른 특정 기능). 나는 그것을 사용한 적이 없지만 Maven plugin for Doxygen 인 것 같습니다.

+1

다음은 Doxygen Maven 플러그인에 대한 링크입니다. http://khmarbaise.github.io/doxygen-maven-plugin/ –

3

Doxygen을 사용하면 클래스 다이어그램을 문서와 동일한 페이지에 표시 할 수 있습니다. 또한 필자는 필 요할 경우 소스 코드에 직접 연결된다는 점을 좋아합니다. 비록 javadoc 이러한 기능을 가지고 있는지 나는 잘 모르겠다.

+1

예 javadoc도 클래스 다이어그램을 가질 수 있습니다. http://www.yworks.com/en/products_ydoc .htm (무료는 아니지만 ... 다른 유사한 도구 프리웨어를 기억하려고합니다.) – VonC

+1

http://java.dzone.com/articles/reverse-engineer-source-code-u –

+0

무료 APIViz 도크 렛을 사용할 수 있습니다 http://code.google.com/p/apiviz/)를 사용하여 javadoc에서 클래스 다이어그램을 생성하십시오. –

2

JavaDocs의 큰 이점 중 하나는 바로 작동한다는 것입니다. 빌드하고 보는 데 필요한 모든 것은 프로그램 컴파일을 위해 이미 설치해야하는 JDK에 포함되어 있습니다.

Doxygen은 설정하고 올바르게 작동하는 고통이 될 수 있습니다. 그러나 올바르게 설정되면 HTML뿐만 아니라 PDF, RTF 및 DocBook을 생성 할 수 있어야합니다. HTML은 index.html이 기본적으로 빈 페이지를 가져 오기 때문에 기본적으로 JavaDocs로 구성되지 않습니다. 또한 인라인 클래스와 정적 멤버는 문서에 포함될 특별한 플래그를 필요로 할 수 있습니다. PDF를 생성하려면 필요한 pdflatex 명령이없는 Linux 배포본을 처리해야 할 수도 있습니다 (예 : Ubuntu/Mint에는 최근에 문제가 생겼습니다.) 그래서 그냥 설치하고 실행하면 간단한 프로그램으로도 화면에 오류가 가득 찰 수 있습니다. API를 설치할 때 자동으로 javadoc을 쉽게 얻을 수있는 것과 비교할 때 Doxygen 설정은 비참한 경험 일 수 있습니다.일단 장애물을 극복하고 나면 Java 이외의 다른 프로젝트를 다루는 데있어 더 유연해야합니다.