문제

어떻게븐과 상호 작용하는 다른 저장소 같은 넥서스와 Artifactory?

은 그것을 자신을 사용하여 나머지 Api?그것은 가능한 해결하는 종속 유물을 실제 위치에서 이러한 Api 를 사용하지만,두 가지 Api 와는 다소 다른 서로 다른 형태(지금까지 내가 보는 바와 같이 [Artifactory] [넥서스] 다)및 저장소의 정의는 요소에서 Maven pom 파일에 포함되지 않은 객실 유형의 상태를 저장소.

그래서 어떻게 Maven 해결합물의 groupId,아티팩트 id 및 버전을 실제 파일에서 다른 저장소?는 이러한 저장소의 일부를 구현하는 기타 표준화된 API 할 수 있는 메이븐에서 파일을 요청들에서 저장소에 관계없이는 방법?

도움이 되었습니까?

해결책

yoy는 2 가지 방법으로 아티팩트를 검색하도록 저장소를 정의합니다.

1) project 섹션에서 pom.xml

<project>
    ....
    <repositories>
         <repository>
            ...
            <url>...</url>
         </repository>
    </repositories>
</project>
.

2) 및 / 또는 파일 $USER_HOME$/.m2/settings.xml (웹에 충당한 예가 있음)

Maven은 아티팩트 그룹, ID, 버전, 유형 및 분류기에 따라 저장소 URL 및 추가 경로를 사용하여 아티팩트의 URL을 구성하여 아티팩트를 다운로드합니다. GroupID의 DOTS를 '/'로 변환합니다.

RepoUrl/groupId/artifactId/version/artifactId-version-classifier.type
.

예 :

https://repository.apache.org/content/repositories/releases/commons-io/commons-io/2.4/commons-io-2.4.jar

https://repository.apache.org/content/repositories/releases/commons-io/commons-io/2.4/commons-io-2.4-sources.jar

https://repository.apache.org/content/repositories/releases/commons-io/commons-io/2.4/commons-io-2.4-javadoc.jar
.

이것은 협약이며, 아티팩트 또는 넥서스와는 독립적입니다. 이것은 Maven입니다. 모든 것이 HTTP 또는 HTTPS를 통해 전송됩니다. 또한 Maven은 MD5 및 SHA1 파일을 보안 목적으로 처리합니다.

일단 다운로드되면 캐시 및 프록시 역할을하는 $USER_HOME$/.m2/repositories (원격 저장소와 유사한 구조가 포함됨)에서 워크 스테이션에 로컬 저장소에 저장됩니다.

전형적으로 아티팩트 또는 넥서스는 회사 수준에서의 로컬 캐시 및 프록시의 종류가 있으며 일부 기능을 관리합니다. 분명히 그들은 회사 개발자가 발행 한 Maven 유물을 호스트합니다.

3 단계 리포지토리처럼 보입니다. 지역 - 지역 회사 - 글로벌

다른 팁

Maven 사용하여 어떤 종류의 이름을 사용합니다.에 pom.xml 을 정의하는 루트의 URL 을 저장소에(예를들면 http://download.java.net/maven/2/ 다)및 그 maven 이를 해결할 수 있는 이슈를 구성하여 URL:

<root URL>/${group id where dots are replaced by slashes}/${artifact id}/${version}

그래서 다음에 대한 의존성

<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>2.0.0</version>

Maven 을 찾기 위해 노력할 것입딩 및 항아리에 http://download.java.net/maven/2/org/apache/lucene/lucene-core/2.0.0

는 모든 URI 는 다음과 같이 컨벤션으로 제공할 수 있다 Maven repo.

MAVEN은 보통 HTTP 호출을 사용하여 저장소와 상호 작용합니다.HTTP 서버가 Maven 저장소를 제공 할 필요가 없지만 아무 것도 필요하지 않습니다.Maven은 특정 디렉토리 계층 구조와 몇 가지 메타 데이터 파일을 사용합니다.(Maven이 다운로드 한 파일이 똑같은 형식 인 경우 디스크 저장소의 로컬은 동일한 형식입니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top