2009-07-02 4 views
3

직장에서 나는 프로젝트 종속성을 maven으로 관리하는 데 집중하고있다. 우리는 Apache Archiva (1.2.1)를 로컬 저장소와 프록시로 사용합니다. 공공 저장소에 공개되지 않은 공개 소스 프로젝트의 이슈를 추가하고 있습니다. 소스를 게시하려면을 입력해야합니다. use the Classifier field으로 업로드하고 이슈 페이지를 업로드해야합니다. 소스는 저장소를 탐색 할 때 jar와 pom과 함께 나열됩니다.archiva에서 소스를 사용하여 아티팩트 게시하기

그러나 내 maven 종속성을 업데이트 할 때 저장소에서 jar 및 pom 만 가져옵니다. Archiva가 다른 공공 저장소에서 다운로드를 프록시 할 때 소스도 누락 된 것으로 나타났습니다. 나는 Archiva의 관리 페이지에서 소스를 제공하는 구성 옵션을 찾지 못했습니다 ... 무엇이 누락 되었습니까?

업데이트 : 이슈 소스를 수동으로 다운로드해야한다는 사실을 놓쳤습니다. 나는. maven 클라이언트는 명령 행 옵션 -DdownloadSources=true에 의해 제어되는 이들을 요청해야합니다. Eclipse 용 Maven Integration에는 Resolving artifact sources에 설명 된대로 항상 다운로드하도록 환경 설정이 있습니다. 그런 다음 Archiva는 로컬 아티팩트 소스를 제공하거나 원격 리포지토리에 대한 요청을 프록시하여 향후 요청을 위해 소스를 캐시합니다.

+0

이 문제는 나를위한 비 아키바 문제를 해결했습니다. 쉽게 찾을 수 있도록이 질문에 태그를 추가하십시오. maven jar source –

답변

3

Archiva는 소스를 제공하지만 Maven은 기본적으로 요청하지 않습니다. Archiva를 Maven 레포로 사용하기 때문에 알 수 있습니다. 소스를 어떻게 요청하고 있습니까?

이클립스에게

  • 을 사용하는 프로젝트 디렉토리에 mvn eclipse:eclipe -DdownloadSources=true 실행할 수있는 경우;
  • Maven Integration for Eclipse을 설치할 수 있습니다.

둘 모두 사용할 수있는 경우 소스를 반환해야합니다.

+0

Eclipse 용 Maven Integration을 사용하고 있습니다. 공개 저장소에서 아티팩트를 설치하면 소스와 함께 다운로드되었습니다. Archiva에서 그들은 출처없이옵니다. 그것은 최소한 내 관찰에 근거하여 내가 탓하는 것입니다 ... 명령 행에서와 같은 결과. 내 설정 파일에서 maven에 항상 소스를 요청하도록 가르쳐야한다는 의미입니까? 방법? – Palimondo

+0

아주 이상합니다. archiva.log 파일에 오류가 있습니까? 수동으로 소스 파일을 요청하는 경우는 어떻습니까? 예 : 브라우저에서로드하십시오. $ archiva/repo/internal/$ groupId/$ artifactId/$ version/$ artifactId- $ version-sources.jar? (경로의 100 %가 아님) –

+0

아 ... 나는 바보입니다. 나는 소스를 수동으로 요청하거나 이클립스 용 Maven 통합 환경 설정에서 환경 설정을 변경해야한다는 것을 몰랐다. 모든 것이 작동합니다. 내 로컬 리포지토리의 일부 아티팩트에는 수동으로 지정하지 않은 소스 (예 : junit, joda-time)가 포함되어 있습니다. 어쩌면 일부 아키 타입 플러그인이 저에게 해줬을 것입니다 ... – Palimondo

0

소스는 컴파일/런타임 종속성을 충족시킬 필요가 없습니다. 소스를 앱과 번들로 묶으려면 소스와의 종속성을 지정하십시오. 또는 archiva에서 그들을 잡으려고 어셈블리 같은 플러그인을 사용합니다.

관련 문제