2013-06-09 2 views
4

Nexus 및 Artifactory와 같은 이슈 저장소의 색인 생성이 어떻게 작동하는지 알고 싶습니다. 그것은 어떤 이점을 제공합니까? 내 말은 - 그것이 어떻게 도움이되며 유물을 해결할 때 사용되는 논리는 무엇입니까?Maven 이슈 저장소의 색인 생성 방법은 무엇입니까?

Lucene 색인에는 주어진 프록시 된 저장소 또는 그룹에 어떤 유물이 있는지에 관한 정보가 들어 있으며 일단이 색인이 다운로드되면 원격 저장소에 찾고있는 이슈가 포함되어 있는지 쉽게 확인할 수 있습니다. 당신은 그것을 가지고있는 저장소에서 그것을 해결하려고 할 수 있습니다. 이게 유일한 용도인가요? 각 리포지토리에 인덱스가 있기 때문에 인덱스도 로컬 해상도에 대해 쿼리됩니까? ...? 이것은 실제로 어떻게 작동합니까?

답변

2

Mark는 이미 말했듯이, Maven 색인은 검색 (UI가 검색되는 서버 측 또는 REST 사용)이나 클라이언트 측 (예 : POM 편집기의 코드 완성, 일반적인 예는 컨텍스트 힌트는 인덱스를 사용하여 Gs, As 및 Vs를 제공하며 예를 들어 종속성을 추가합니다.

Nexus는 주요 기능을 수행하기 위해 색인을 사용하지 않습니다. 즉, 색인을 즉석에서 유지 관리하지만 색인 생성 및/또는 프록시 기능을 제공합니다. 다시 말하지만 인덱스는 검색 UI 및 다운 스트림 게시 이유 (M2E와 같은 클라이언트의 경우)를 제외하고는 "해결"또는 다른 방식으로 사용되지 않습니다.

Maven Indexer의 "클라이언트 측"사용 예를 들어, here 예제를 볼 수 있습니다.

HTH이 매우 유용한 정보
~ t ~

+0

코드 예제 및 자세한 설명을 보내 주셔서 감사합니다! Nexus에 대한 귀하의 노력에 감사드립니다. – carlspring

3

저장소 색인 생성은 모두 검색에 관한 것입니다. 메이븐 이클립스 플러그인 문서는 기능에 대해 설명 :

는 서버 측 인덱스를 유지하는 메이븐 클라이언트 작업을보다 효율적으로합니다. 서버 측 저장소 관리자는 색인을 사용하여 아티팩트 검색을위한 검색 인터페이스 및 REST API를 사용할 수 있습니다 (Sonatype Nexus에는 데이터베이스가 필요하지 않음).

+0

감사합니다! – carlspring

+0

좀 더 자세한 정보를 제공해 주실 수 있습니까 - 예를 들어 코드,이를 다루는 라이브러리, 좀 더 구체적으로 - 일부 수업 ...? – carlspring

+0

@carlspring 나는 인덱스에 직접 액세스 할 필요가 없습니다.저는 Nexus UI와 Eclipse 플러그인을 통해 간접적 인 사용자입니다. 나는 그들이 매우 마법 적이라고 생각하지 않는다. 인덱스를 직접 읽는 클라이언트 라이브러리 예제는 Apache Lucene 문서를 읽는 것이 좋습니다. –

10

Artifactory는 검색을 위해 색인을 사용하지 않습니다. 우리는 컴퓨터가 느려지고 서버 측에서 대규모 검색을 처리 할 수 ​​없었던 과거의 문제라고 생각합니다. 여기에 검색 색인이 나쁜 이유의 일부 목록입니다 :

  • 클라이언트는
  • 인덱스를 자주 변경
  • 을 반영하기에 너무 희귀 업데이트 검색하기 전에 큰 파일을 다운로드 할 필요가 검색 인덱스
  • 시스템은 특별한 클라이언트를 필요
  • 에 대한 검색 수행 클라이언트가 인덱스 형식과 힘들게 결합되었습니다. Artifactory 같은 서버가 인간을 위해 UI를 통해 IDE를 같은 도구에 대한 API를 노출 검색 실시간으로 제공 할 수

Nowdays는 인덱스는 사용되지 만 m2eclipse에 같은 도구와의 호환성을 위해 Artifactory에서 지원됩니다.

+1

Maven은 인덱스를 사용하는 유일한 저장소 기술이 아닙니다. 또한 Lucene은 인덱스 다운로드의 크기를 줄이는 부분 인덱스 업데이트를 지원합니다. 인덱스 사용의 주요 장점은 분산 검색을 가능하게한다는 것입니다. 클라이언트 연결에 관해서는 Lucene은 개방형 포맷이지만 형식을 지정하는 문제가 있다면 대부분의 사용자가 액세스하지 못하는 대체 Maven 저장소 (예 : 인공물)의 공급 업체에만 영향을 미친다는 것을 상상할 수 있지만 그것이 형식을 지원하는 데 어려움을 느끼지는 않습니다. 색인을 직접 ... 나는 Maven repo 형식을 실제로 문서화하지 않았기 때문에 Sonatype을 잘못 이해할 것입니다. –

+0

@ MarkO'Connor "분산 검색"의 의미가 확실하지 않습니까? 며칠 전 우리는 다운로드 용 인덱스와 검색 용 서버 측 API의 이점을 찾아 내려고 노력했지만 아무 것도 발견하지 못했습니다. 듣기 좋다 (진정으로). – JBaruch

+0

알기. Maven repos는 다운로드 가능한 인덱스가있는 유일한 기술은 아닙니다. 예를 들어 yum 저장소 (RPM 패키지)는 sqlite 데이터베이스를 사용하여 클라이언트가 다운로드 한 저장소 색인을 저장하는 동일한 접근법을 사용합니다. REST API를 사용하는 것보다 REST API의 주요 장점은 확장이라는 점입니다. 저장소를 호스팅하는 데 필요한 것은 모두 HTTP 서버 및 rsync입니다. –

관련 문제