Nexus에서 아티팩트를 배포 할 때 오류 발생
Nexus 서버의 내 저장소에 아티팩트를 배포 할 때 오류가 발생합니다. "아티팩트 배포 실패 : 아티팩트를 배포 할 수 없습니다." "http : /// my_artifact 파일을 전송하지. 반환 코드 : 400"
다음 maven 로컬 구성으로 하나의 사용자 정의 저장소 my_repo로 Nexus를 실행하고 있습니다.
settings.xml
<server>
<id>my_repo</id>
<username>user</username>
<password>pass</password>
</server>
...
<mirror>
<id>my_repo</id>
<name>Repo Mirror</name>
<url><my_url_to_my_repo></url>
<mirrorOf>*</mirrorOf>
</mirror>
- 사용자는 my_repo에 작성 / 읽기 / 쓰기 권한이 있습니다.
pom.xml
<distributionManagement>
<repository>
<id>my_repo</id>
<name>my_repo</name>
<url><my_url_to_my_repo></url>
<layout>default</layout>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url><my_url_to_my_snapshot_repo></url>
</snapshotRepository>
</distributionManagement>
그리고 나는 실행
mvn deploy
오류가 발생합니다. 어떤 생각?
내가 생각할 수있는 몇 가지 :
- 사용자 자격 증명이 잘못되었습니다.
- 서버 URL이 잘못되었습니다.
- 사용자는 배치 저장소에 대한 액세스 권한이 없습니다.
- 사용자는 특정 저장소 대상에 대한 액세스 권한이 없습니다.
- 아티팩트가 릴리스 (-SNAPSHOT 버전 아님) 인 경우 해당 버전으로 이미 배포되었습니다.
- 저장소가 각 아티팩트의 배포에 적합하지 않습니다 (예 : 스냅 샷 버전의 릴리스 저장소, 호스트 저장소 프록시 저장소 또는 그룹).
이를 확인하고 여전히 문제가 발생하면 여기에 자세한 내용을 제공하십시오.
별도의 답변을 작성하십시오. 답변은 수락 된 답변에 대한 의견에서 수락 수 있습니다.
아티팩트의 버전을 -SNAPSHOT
.
나에게 문제의 원인은 -source.jars가 허용 된 답변의 원인 중 하나로 언급했듯이 maven-source-plugin을 사용하여 두 번 업로드했습니다. 내가 언급 한 답변으로 리디렉션 : Maven 릴리스 오류 메시지 : 소스 아티팩트가 두 번 배포 됨
나는 오늘이 버전이 버전이 이미 Nexus 저장소에있는 것입니다.
제 경우에는 이전 릴리즈 : 호출 중에 네트워크 연결이 더러워 졌기 때문일 수 있습니다. 연결이 끊어졌지만 릴리스가 성공한 것입니다.
다음을 시도하면 400 잘못된 요청이 반환됩니다.
- 배포] 스냅 샷 끝나는 유물 (또는 버전) -snapshot를 를 릴리스 저장소
- 릴리스 아티팩트 ( -SNAPSHOT로 끝나지 않는 버전 )를 스냅 샷 저장소 에 배포 합니다.
- 릴리스 아티팩트 의 동일한 버전을 릴리스 저장소 에 두 번 이상 배치
드물게 Nexus에 SAME STABLE 아티팩트를 재배포해야하는 경우 기본적으로 실패합니다. 그런 다음 다시 배포 할 목적으로 Nexus에서 아티팩트를 삭제하면 (웹 인터페이스를 통해) 배포가 실패합니다. 예를 들어 jar 또는 pom을 제거하는 것만으로는 디렉토리에있는 다른 파일이 삭제되지 않기 때문입니다. 상자에 로그온하고 디렉터리 전체를 삭제해야합니다.
- 상위 pom application ==> 버전에서 다음과 같이 태그를 넣으십시오. xxx-SNAPSHOT
예 : 0.0.1-SNAPSHOT
- "-SNAPSHOT": 매우 중요합니다.
nexus (릴리스)에 이미 존재하지 않는지 (아티팩트 및 버전) 확인하십시오. 이 경우 잘못된 요청을 반환합니다.
오늘도 "반환 코드 : 400, ReasonPhrase : 잘못된 요청"을 추가하여 동일한 문제가 발생했습니다. 위의 답변에서 "아티팩트가 이미 해당 버전에 배포 된 경우"문제로 판명되었습니다. 여기에 링크 설명을 입력하십시오.
아직 언급되지 않은 한 가지 해결책은 릴리스 저장소에 재배포 할 수 있도록 Nexus를 구성하는 것입니다. 이 설정은 이유가 있기 때문에 모범 사례가 아닐 수도 있습니다. 그럼에도 불구하고 Nexus 리포지토리의 "구성"-탭에서 "액세스 설정"으로 이동하여 "배포 정책"을 "재배포 허용"으로 설정할 수 있습니다.
위 답변 중 하나라도 해결되면 (아래 첨부 된 NEXUS 스크린 샷)의 관리자 측에서 직접 새 아티팩트를 만들 수 있습니다.
Login to nexus
UI http : // YOUR_URL : 8081 / nexus (사용자 이름 : admin 기본 비밀번호 : admin123 )Click repositories
왼쪽에서 repo를 클릭하십시오. 예 : 릴리스를 클릭하십시오.artifact Upload
(마지막 탭)을 선택합니다 .- 선택
GAV definition
으로GAV Param
그런 다음 그룹 ID, 아티팩트 ID 및 버전을 입력합니다 -. - Jar 파일을 선택하십시오.
- 이슈 업로드를 클릭합니다. 그게 다야!
이제 프로젝트에 해당하는 내용을 추가 할 수 있습니다 (아래 스크린 샷).
이는 배포하려는 버전 번호를 금지하는 버전에 대한 명명 정책이있는 경우에도 발생할 수 있습니다. 제 경우에는 (리포지토리를 릴리스하기 위해) 버전을 업로드하려고 2.0.1
했지만 나중에 넥서스 구성이 릴리스에 정수 이외의 다른 것을 허용하지 않는다는 것을 알게되었습니다.
나중에 버전으로 시도 2
하고 성공적으로 배포했습니다.
오류 메시지는 확실히 도움이되지 않습니다.
Return code is: 400, ReasonPhrase: Repository does not allow updating assets: maven-releases-xxx. -> [Help 1]
더 나은 메시지는 version 2.0.1 violates naming policy
400 오류의 경우 "배포 정책"저장소에서 일반적으로 "재배포 비활성화"를 확인합니다. 대부분의 경우 라이브러리 버전이 이미 있기 때문에 "Could not PUT put ' https : //yoururl/some.jar ' 라는 메시지를 받았습니다 . 서버에서 상태 코드 400 수신 : 저장소에서 자산 업데이트를 허용하지 않습니다." 저장소 이름 "
따라서이 문제를 해결할 수있는 몇 가지 옵션이 있습니다. 1- 재배포 허용 2- 업로드하려는 저장소에서 버전 삭제 3- 버전 번호 변경
참고 URL : https://stackoverflow.com/questions/18649486/error-when-deploying-an-artifact-in-nexus
'IT' 카테고리의 다른 글
"ClickOnce는 요청 실행 수준 'requireAdministrator'를 지원하지 않습니다." (0) | 2020.09.13 |
---|---|
Vim에서 기본 글꼴 크기를 어떻게 설정합니까? (0) | 2020.09.13 |
루비 온 레일즈의 여러 열에 대한 보안 (0) | 2020.09.13 |
Bash의 HMAC-SHA1 (0) | 2020.09.13 |
변수의 유형이 변수에 기록 유형과 일치하는지 확인하는 방법 (0) | 2020.09.13 |