Development Tip

Maven에서 종속성에 대한 저장소를 지정하는 방법

yourdevel 2020. 12. 5. 10:45
반응형

Maven에서 종속성에 대한 저장소를 지정하는 방법


여러 종속성 및 리포지토리가있는 프로젝트에서 종속성 다운로드를위한 Maven의 시도 및 오류 접근 방식은 약간 번거롭고 느리므로 선언 된 종속성에 대해 특정 리포지토리를 설정할 방법이 있는지 궁금합니다.

예를 들어 bouncycastle 이 공식 Maven 대신 http://repo2.maven.org/maven2/org/bouncycastle/ 에서 BouncyCastle의 Maven repo를 직접 확인하고 싶습니다 .


불가능합니다. Maven은 주어진 아티팩트가 해결 될 때까지 (또는 해결되지 않을 때까지) 선언 순서에서 저장소를 확인합니다.

일부 저장소 관리자는 이에 접근 할 수 있습니다. 예를 들어 Nexus에는 동등한 작업을 수행 하는 경로 기능이 있습니다.


타사 저장소에서 자체 프로젝트로 라이브러리를 이동하고이 프로젝트를 기본 프로젝트의 첫 번째 모듈로 포함했습니다.

base / pom.xml

...
<modules>
    <module>thirdparty</module>
    <module>mymodule</module>
    ...
</modules>

base / thirdparty / pom.xml :

...
<artifactId>thirdparty</artifactId>
<packaging>pom</packaging>

<repositories>
    <repository>
        <id>First thirdparty repository</id>
        <url>https://...</url>
    </repository>
    ...
</repositories> 

<dependencies>
    <dependency>
       <!-- Dependency from the third party repository -->
    </dependency>
    ....
</dependencies>

base / mymodule / pom.xml :

<dependencies>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>thirdparty</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
    </dependency>
    ...
</dependencies>

이렇게하면 루트 프로젝트가 빌드되는 즉시 타사 저장소의 라이브러리가 로컬 저장소로 다운로드됩니다. 다른 모든 종속성의 경우 저장소가 표시되지 않으므로 다운로드 할 때 포함되지 않습니다.

참고 URL : https://stackoverflow.com/questions/3168319/how-to-specify-a-repository-for-a-dependency-in-maven

반응형