maven 태그 와 태그 사용
Maven 창 고 는 모든 JAR 파일(WAR,ZIP,POM 등)을 설치 하 는 곳 으로 모든 Maven 프로젝트 는 같은 Maven 창고 에서 자신 이 필요 로 하 는 JAR 의존 도 를 얻 을 수 있어 디스크 자원 을 절약 할 수 있다.또한 Maven 창고 에 있 는 모든 JAR 은 자신의 좌 표를 가지 고 있 기 때문에 이 좌 표 는 Maven 의 그룹 ID,구조물 ID,버 전,포장 방식 등 을 알려 주기 때문에 Maven 프로젝트 는 버 전 관리 에 편리 하 게 의존 할 수 있다.당신 도 JAR 파일 을 SCM 창고 에 제출 할 필요 가 없습니다.모든 구성원 이 사용 할 수 있 도록 조직 적 인 Maven 창 고 를 만 들 수 있 습 니 다.
요컨대 Maven 창 고 는 우리 가 부품 을 관리 하 는 데 도움 을 줄 수 있다(주로 JAR).
로 컬 창고(.m2)vs.원 격 창고(인터넷)
Maven 을 실행 할 때 Maven 이 필요 로 하 는 모든 구조물 은 로 컬 창고 에서 직접 얻 을 수 있 습 니 다.만약 로 컬 창고 가 없다 면,먼저 원 격 창고 에서 부품 을 로 컬 창고 로 다운로드 한 다음 에 로 컬 창고 의 부품 을 사용 하려 고 시도 할 것 이다.
예 를 들 어 프로젝트 는 Junit-3.8 의 의존 도 를 설정 합 니 다.mvn test 를 실행 할 때 Maven 은 Junit-3.8 의 jar 파일 을 사용 해 야 합 니 다.먼저 좌표 에 따라 로 컬 창 고 를 찾 고 찾 으 면 바로 사용 합 니 다.없 으 면 Maven 은 사용 가능 한 원 격 창고 설정 을 확인 한 다음 원 격 창고 에서 Junit-3.8 의 jar 파일 을 다운로드 하려 고 시도 합 니 다.원 격 창고 에 이 파일 이 존재 하면 Maven 은 로 컬 창고 에 다운로드 하여 사용 합 니 다.모든 원 격 창 고 를 시도 한 후에 도 Maven 이 이 파일 을 다운로드 하지 못 하면 오류 가 발생 할 수 있 습 니 다.
Maven 이 부족 한 로 컬 창고 주 소 는${user.home}/.m2/reposcory 입 니 다.즉,한 사용자 가 대응 하 는 로 컬 창 고 를 가지 고 있다 는 것 이다.
로 컬 창고 의 위 치 를 사용자 정의 할 수 있 습 니 다.${user.home}/.m2/settings.xml:
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository-->
<localRepository>D:/.m2/repository</localRepository>
실행 중 로 컬 창고 위 치 를 지정 할 수 있 습 니 다:
mvn clean install -Dmaven.repo.local=/home/juven/myrepo/
또 한 가지 이해 해 야 할 것 은 우리 가 인 스 톨 을 실행 할 때 Maven 은 실제로 프로젝트 생 성 된 구조물 을 로 컬 창고 에 설치 했다 는 것 이다.즉,인 스 톨 이 된 후에 야 다른 프로젝트 가 이 프로젝트 에서 생 성 된 구조물 을 사용 할 수 있다 는 것 이다.이 어 Maven 이 부족 한 원 격 창고,즉 Maven 중앙 창고 에 대해 알 아 보 자.
Maven 을 설치 한 후에 우 리 는 간단 한 프로젝트 를 만 들 고 간단 한 의존 도 를 설정 한 다음 에 mvn clean install 을 실행 하면 프로젝트 가 구 축 됩 니 다.우 리 는 어떤 jar 파일 도 손 으로 다운로드 하지 않 았 습 니 다.이 모든 것 은 Maven 중앙 창고 가 존재 하기 때 문 입 니 다.Maven 이 로 컬 창고 에서 필요 한 jar 파일 을 찾 지 못 할 때 원 격 창 고 를 찾 습 니 다.원 격 Maven 설치 로 원 격 창고 인 Maven 중앙 창 고 를 가 져 왔 습 니 다.
이 Maven 중앙 창 고 는 어디서 정의 되 나 요?내 기계 에 maven-2.0.10 을 설 치 했 습 니 다.이 파일 을 찾 을 수 있 습 니 다:${M2HOME}/lib/maven-2.0.10-uber.jar ,
하지만 3.xxx 버 전 이후:maven 설치 디 렉 터 리 에 있 는:/lib/maven-model-builder-${version}.jar 에서
이 파일 을 열 면 슈퍼 POM:\org\apache\maven\model\pom-4.0.0.xml 을 찾 을 수 있 습 니 다.모든 Maven POM 의 부모 POM 입 니 다.모든 Maven 프로젝트 가 이 설정 을 계승 합 니 다.이 POM 에서 다음 과 같은 설정 을 발견 할 수 있 습 니 다.
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
원 격 창고 의 설정 에 대해 아래 의 제 가 상세 하 게 설명 하 겠 습 니 다.중앙 창고 의 id 는 central 이 고 원 격 url 주 소 는http://repo.maven.apache.org/maven2이 며 snapshot 버 전 구조 재 다운로드 지원 을 닫 았 습 니 다.POM 에 원 격 창고 설정
앞에서 우 리 는 슈퍼 POM 이 ID 가 central 인 원 격 창 고 를 설정 한 것 을 보 았 습 니 다.우 리 는 POM 에 다른 원 격 창 고 를 설정 할 수 있 습 니 다.이렇게 하 는 이 유 는 여러 가지 가 있 습 니 다.예 를 들 어 랜 의 원 격 창 고 를 가지 고 있 습 니 다.이 창 고 를 사용 하면 다운로드 속 도 를 크게 향상 시 킬 수 있 고 구축 속 도 를 높 일 수 있 습 니 다.또한 당신 이 의존 하 는 jar 는 central 에서 찾 을 수 없 을 수도 있 습 니 다.특정한 공공 창고 에 만 존재 합 니 다.그러면 원 격 창고 의 설정 을 추가 해 야 합 니 다.
중앙 창 고 를 가리 키 는 원 격 창 고 를 설정 합 니 다.
<project>
...
<repositories>
<repository>
<id>maven-net-cn</id>
<name>Maven China Mirror</name>
<url>http://maven.net.cn/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>maven-net-cn</id>
<name>Maven China Mirror</name>
<url>http://maven.net.cn/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
...
</project>
먼저settings.xml 에 원 격 창 고 를 설정 합 니 다.
우 리 는 POM 에 원 격 창 고 를 어떻게 배치 하 는 지 알 게 되 었 으 나 이러한 상황 을 고려 했다.한 회사 내부 에서 이 세 가지 프로젝트 를 동시에 진행 하고 앞으로 이 몇 가지 프로젝트 가 끝나 면서 점점 더 많은 프로젝트 가 시 작 될 것 이다.동시에 회사 내부 에 Maven 창 고 를 세 웠 다.우 리 는 모든 항목 에 이 창 고 를 배치 하기 때문에 모든 항목 에 똑 같은 설정 을 제공 해 야 한다.문제 가 생 겼 습 니 다.이것 은 중복 입 니 다!
사실 우 리 는 한 번 만 설정 할 수 있 습 니 다.어디서 설정 합 니까?settings.xml 입 니 다.
그러나 일 은 그리 간단 하지 않 습 니 다.POM 의
<settings>
...
<profiles>
<profile>
<id>dev</id>
<!-- repositories and pluginRepositories here-->
</profile>
</profiles>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
...
</settings>
이 프로필 에 모든 reposcories 와 pluginRepositories 요 소 를 넣 고프로필 을 사용 하여 settings.xml 에 창 고 를 추가 하 는 데 사용자 전역 범위 의 창고 설정 을 제공 합 니 다.
미 러 사용
지리 적 위치 근처에 속도 가 빠 른 central 미 러 가 있 거나 central 창고 설정 을 덮어 쓰 고 싶 거나 모든 POM 에 유일한 원 격 창고(이 원 격 창고 에이전트 에 필요 한 모든 다른 창고)를 사용 하고 싶다 면 settings.xml 의 mirror 설정 을 사용 할 수 있 습 니 다.
다음 mirror 설정 은 Maven.NET.cn 으로 Maven 자체 테이프 의 central 을 덮어 씁 니 다.
<settings>
...
<mirrors>
<mirror>
<id>maven-net-cn</id>
<name>Maven China Mirror</name>
<url>http://maven.net.cn/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
...
</settings>
여기 서 유일 하 게 설명 해 야 할 것 은
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
-->
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus Mirror</name>
<url>http://xx.xx/nexus/content/groups/public</url>
</mirror>
</mirrors>
<settings>
...
<mirrors>
<mirror>
<id>my-org-repo</id>
<name>Repository in My Orgnization</name>
<url>http://192.168.1.100/maven2</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
...
</settings>
마 븐이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Windows에서 CodeArtifact(Maven)용 토큰을 자동으로 생성하는 방법CodeArtifact를 사용한 적이 있거나 사용할 계획이라면 매일 모든 Maven 프로젝트에서 수동으로 토큰(CODEARTIFACT_AUTH_TOKEN)을 생성해야 합니다. 이는 어려울 수 있으며 개발 속도를 늦출...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.