오랜만에 메이븐 프로젝트를 분석해야 할 일이 생겼고 build 하는 과정에서 이 오류를 마주쳤고 간단하게 해결했습니다! 물론 간단하게 해결했다고 해서 시간이 짧게 걸린 건 아닙니다..! 서론은 그만하고 에러 발생 원인과 해결 방법 알아보겠습니다.
Authentication failed for nexus 401 unauthorized 에러 발생 원인
에러 내용을 읽어보면 nexus에 deploy 할 수 없기 때문에 발생했다는 것을 알 수 있습니다. 원인은 반환된 401 에러 코드를 통해 알 수 있는데 해당 코드는 유효한 인증 자격 증명이 없기 때문에 발생합니다!
gradle을 사용해서 nexus에 deploy 할 때는 build.gradle 파일에서 repositories 부분에 nexus 주소만 적어주면 됐기 때문에 maven의 경우 따로 설정을 해줘야 한다는 걸 모르고 있었습니다.
maven의 경우 nexus에 deploy 할 때 계정 정보가 필요하고 이는 settings.xml에서 설정할 수 있습니다.
Authentication failed for nexus 401 unauthorized 에러 해결 방법
1. maven repository 경로를 찾습니다.
기본 경로는 다음과 같습니다.
windows : C:\Users\사용자계정\.m2\repository
linux : /home/사용자계정/. m2/repository
2. settings.xml 파일을 생성하고 nexus에 대한 서버 정보를 입력해 줍니다.
( xml 확장자를 가진 파일은 Intellij에서 생성한 다음에 옮겨서 만들어줬습니다.)
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>${id}</id> <!-- binnary -->
<username>${username}</username>
<password>${password}</password>
</server>
</servers>
</settings>
settings.xml파일에서 id는 pom.xml에 있는 Nexus 관련 설정과 동일해야 합니다.
이렇게 설정을 마치고 모든 파일을 잘 저장하고 빌드를 해주시면 됩니다. 그리고 켜주면 원래라면 잘 되어합니다!
저의 경우 모든 설정을 마치고 나니 Colud not find artifact 오류가 떴습니다.. 어떤 경우인지에 따라 다르겠지만 먼저 해봐야 할 것은 mvn clean 후 install입니다! 왜인지 모르겠는데 메이븐은 이런 경우가 꽤 있다고 하는 거 같습니다..
mvn clean 말고 IDE를 껐다 켜주었는데 잘 실행됐습니다. 빌드되는 화면은 깜빡하고 캡쳐하지 못했습니다.. 오랜만에 메이븐을 설정하다 보니 좀 애를 먹었는데 다음에는 에러 없이 바로 실행할 수 있는 개발자가 되는 것을 목표로..!
'Develop' 카테고리의 다른 글
[Error] ORA-01861: literal does not match format string 해결 (0) | 2025.02.09 |
---|---|
[Project] 나이스 본인확인 API 적용 (feat.JAVA) (4) | 2024.11.07 |
[Error] invalid signature file digest for manifest main attributes 해결 (0) | 2024.06.11 |
[Dev Environment] 안드로이드 스튜디오 Flutter 환경 세팅 에러 해결 (2) | 2024.06.05 |
[Dev Environment] 플러터(Flutter) 개발 환경 구축하기 | Feat. Android Studio (0) | 2024.06.04 |