2008-10-25 1 views
2

디버거가 해당 소스가없는 일부 클래스 파일 에 들어가면이 장애물이 발생합니다. 를 찾기 어려운 경우가 많습니다 :인기있는 Java 라이브러리에서 "소스를 첨부"를 쉽게 할 수 있습니까?

  • 당신은, 각각의 프로젝트, 를 호스팅하는 사이트를 검색하고, 예를 들어 (그``다운로드 소스 ''페이지를 찾을 내가 JPA의 API에 대한 을 검색 지난 시간을 가지고, 소스를 확보하는 데 몇 시간이 걸렸습니다.) 또는 을 개정 관리에서 확인해야 할 수도 있습니다.

  • 정확한 버전을 알고 있어야합니다. 그렇지 않으면 디버거는 — 일부 프로젝트는 단지 자체에 포함 포장의 소스 코드에 대한 규칙은 없다 주석과 빈 행 :

  • 로 단계 수; 일부는 별도의 zip 파일을 제공합니다. 다른 사용자는 zip 내의 src/ 하위 폴더에 있습니다.

나는 메이븐은 IDE 설정 파일이 생성 될 때의 src 경로에를 포함하여 저장소에서 소스를 다운로드하고 의 기능이 알고있다. 그러나 Maven의 레포는 내용면에서 매우 열악합니다. — 실제로 몇 개의 라이브러리에 소스가 업로드되었습니다.

간단 할 때 왜 그렇게 복잡한가요? 클래스 파일 (또는 해시 파일)을 컴파일 한 소스 파일 에 연결하는 몇 가지 중앙 저장소가있을 수 있습니다 (또는이 파일에 대한 링크). 어쩌면 꽤 거대한 repo 일지 모르지만, 은 매우 단순하게 구조화되어 있습니다. IDE 플러그인은 자동으로 필요한 것을 가져 오기 위해 쿼리 할 수 ​​있습니다.

여러분, 같은 경험이 있습니까?

첨부 할 원본을 어떻게 구할 수 있습니까?

답변

0

복잡 할 수도 있지만 처음 시도하는 것이 좋습니다.

내가 그것을 다음과 같은 방법을 수행 내 프로젝트 디렉토리에 (어떤 소스가 존재하지 않는 경우 원 /의 javadoc) 내가 (내 자신의) 세 가지 주요 디렉토리,

  • SRC
  • LIB
  • Suppl에이

소스가 들어있는 라이브러리 당 하나의 zip 파일을 suppl로 넣습니다. intellij에서 이것은 디버거 초강력뿐만 아니라 javadocs도 제공합니다.

당신이 옳습니다. 근원을 얻는 것은 고통입니다. 때로는 소스가 lib의 .jar 파일에서 해독되어 왔으며 때로는 별도의 다운로드 (좋아하는 것)로 제공되기도하고 때때로 소스를 체크 아웃 할 수있는 별도의 cvs/svn 디렉토리를 만들어야합니다. 나는 대개 우편으로 제공 되더라도 그들을 좋아하는 방식으로 그들을 다시 포장해야합니다.

나는 maven에 회의적입니다. 나는 libs를 프로그램에 선택하는 것에 대한 내 결정을 넘겨주고 싶지 않습니다.

0

우리는 Andreas와 비슷한 것을합니다. 우리의 lib 디렉토리는 하위 범주로 분류됩니다. 그러한 하위 디렉토리 중 하나는 디버깅하려는 모든 jar의 소스 JAR/ZIP가있는 소스 또는 디버그입니다. 한 번 해보니 좋았어. 우리는 항아리와 소스 항아리에 IVY 저장소를 사용합니다.

1

만족스러운 해결책을 직접 경험하지 못했습니다.

나는 메이븐 (Maven은 괜찮지 만 나에게 클릭하지 않는다)없이 내 자신의 레포를 굴리는 경향이있다. BSD 포트 시스템과 비슷한 것을 실행합니다. 즉, 작은 Ant 빌드 파일을 포함하는 하나의 큰 구조 트리입니다. 이러한 빌드 파일은 프로젝트의 소스를 체크 아웃하고, 트리의 다른 곳에서 의존성을 가져 와서 빌드합니다 (빌드하려는 프로젝트 (즉, 광산) 용) 또는 다른 곳에서 바이너리를 가져옵니다 (외부 소스 또는 내 자신의 바이너리 저장소).

시스템을 쉽게 확장하여 src 항아리를 가져올 수 있지만 지금은 수동으로 수행합니다.

2

m2eclipse과 IDEA는 모든 종속성에 대한 소스와 javadocs를 다운로드합니다. 의존성 (또는 모든 소스를 원할 경우 전체 프로젝트)을 마우스 오른쪽 버튼으로 클릭하고 메이븐 (Maven) -> 소스 다운로드 (Download sources)를 클릭하여 m2eclipse 소스를 다운로드 할 수 있습니다. m2eclipse에 새로운 버전에

download sources screenshot

당신은 또한 자동> 환경 설정을 도우로 이동하여 소스를 다운로드 할 수 있습니다 ...-> 다음 "다운로드 아티팩트 소스"옵션을 선택 메이븐. 종속성 항아리에서 현재 사용할 수있는 소스가없는 유형을 열면 Maven은 백그라운드에서 소스를 다운로드하고 백그라운드에서 소스 첨부를 업데이트합니다.

Maven preferences screenshot