Maven 스냅 샷 리포지토리 대 릴리스 리포지토리


103

스냅 샷 리포지토리와 릴리스 리포지토리 의 차이점은 무엇입니까 ?

이것은 Repositories (Artifactory, Nexus 등) 설정과 관련이 있습니다.


이것은 무엇과 관련이 있습니까? 소스 제어? 내가 아는 한 표준 용어는 아니지만 스냅 샷은 특정 시점 (아마 내부 용으로) 소스 트리의 그림으로 사용되었고 릴리스는 외부에서 릴리스 된 코드에 사용되는 것으로 추측 할 수 있습니다.
1800 정보

Maven (빌드 도구)에 대해 묻는 것 같습니다. 질문과 태그에 포함시켜야 할 수도 있습니다.
bendin

답변:


67

아티팩트 릴리스

특정 시점 릴리스입니다. 릴리스 된 아티팩트는 시간이 지남에 따라 빌드가 반복 될 수 있도록하기 위해 견고하고 안정적이며 영구적 인 것으로 간주됩니다. 릴리스 된 JAR 아티팩트는 PGP 서명과 연관되며 체크섬은 바이너리 소프트웨어 아티팩트의 신뢰성과 무결성을 모두 확인합니다. Central Maven 저장소는 릴리스 아티팩트를 저장합니다.

스냅 샷 아티팩트

스냅 샷은 진행중인 작업을 캡처하고 개발 중에 사용됩니다. 스냅 샷 아티팩트에는 "1.3.0"또는 "1.3"과 같은 버전 번호와 타임 스탬프가 모두 있습니다. 예를 들어 commons-lang 1.3.0에 대한 스냅 샷 아티팩트의 이름은 commons-lang-1.3.0-20090314.182342-1.jar 일 수 있습니다.

refcard 에서 가져옴


Sayat, Is 1.1.0.M5 또는 1.1.0.M4 한 버전의 스냅 샷?
알렉산더 수라 펠

4
이것은 릴리스 및 스냅 샷 아티팩트가 무엇인지 정의합니다. 그러나 : 두 개의 별개의 저장소가 필요합니까?
DNA


1
이것은 질문에 대한 답이 아닙니다. 문제는 릴리스와 스냅 샷 저장소 (아티팩트 아님) 의 차이에 관한 것 입니다.
mks-d

1
@ mks-d 좋은 관찰이지만 그 "무언가"가 무엇인지 먼저 이해하지 않고 무언가의 저장소를 이해하는 것은 어렵습니다. :) stackoverflow.com/a/5901460
datv

86

릴리스 리포지토리는 릴리스를 보유하고 스냅 샷 리포지토리는 스냅 샷을 보유합니다. Maven에서 스냅 샷은 버전이 -SNAPSHOT로 끝나는 아티팩트로 정의됩니다. 배포되면 스냅 샷이 타임 스탬프로 변경됩니다. 정의에 따라 스냅 샷은 변경 가능하고 릴리스는 변경할 수 없습니다. 이것이 Nexus에서 별도로 저장하는 이유입니다. 일반적으로 스냅 샷을 잃어도 상관 없지만 릴리스를 잃어 버려도 상관 없습니다. 이렇게하면 스냅 샷 정리를 훨씬 쉽게 처리 할 수 ​​있습니다.


12
"배포되면 SNAPSHOT이 타임 스탬프로 바뀝니다"에 감사드립니다 .
DATV

jenkins에서 작업을 구성하고 nexus 스냅 샷 저장소에 아티팩트 업로드를 사용하면 스냅 샷을 두 개 이상 볼 수 없습니다. 일반적으로 프로젝트를 변경하고 빌드를 트리거하면 새 아티팩트가 생성됩니다. 이런 일이 일어나고 있지만 동일한 1.0-SNAPSHOT로 이름을 바꾸고 있지만 2.0-SNAPSHOT 등으로 이름을 지정해야합니다 .. 도움이 필요하면 ..
@Brian

나는 jenkins의 포스트 빌드 섹션에서 사용하고 아티팩트를 maven 저장소에 배포하고 nexus의 스냅 샷 저장소로 구성했습니다.
frp farhan

3

스냅 샷은 버전 번호를 -SNAPSHOTS로 제공하는 아이디어이며 개발 중이며 언제든지 변경할 수 있습니다.

내부 저장소는 고정 버전 번호가있는 릴리스 저장소입니다. SNAPSHOTS를 수정할 수 있지만 해당 이슈가 릴리스 된 후에는 변경되지 않습니다.


를 들어 "그 아래 개발 은 변경할 수 있습니다 언제든지" (-snapshot 용)
DATV

3

일반적으로 Maven에는 두 가지 유형의 빌드가 있습니다.

1) 스냅 샷 빌드 : SNAPSHOT은 일반 특정 버전이 아닌 현재 배포 복사본을 나타내는 특수 버전입니다. Maven은 원격 저장소의 모든 빌드에 대한 버전을 확인합니다. 스냅 샷 빌드는 개발 빌드 일뿐입니다.

2) 릴리스 빌드 : 릴리스는 의 버전 ID에서 SNAPSHOT을 제거하는 것을 의미합니다. 이들은 일반 빌드 버전입니다.

스냅 샷 아티팩트 및 릴리스 아티팩트는 각각 스냅 샷, 릴리스 저장소로 푸시됩니다.


0

여기에서 SNAPSHOT은 고정되어 변경되지 않는 하나의 스냅 샷을 의미하지 않습니다. SNAPSHOT은 새 버전 번호로 표시 할 수있을만큼 수정이 크지 않은 여러 스냅 샷을 포함합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.