20년 1월 25일 부로 Maven 정책이 변경되어 통신프로토콜을 TLSv1.2 이상만 지원한다고 한다.
보통 사용하는 java 8 버전은 기본 프로토콜이 TLSv1.2이지만 java 7(1.7)로 만들어진 프로젝트에서 Maven을 사용할때는 문제가 발생하였다.
[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to central (https://repo.maven.apache.org/maven2): Cannot access https://repo.maven.apache.org/maven2 with type default using the available connector factories: BasicRepositoryConnectorFactory: Cannot access https://repo.maven.apache.org/maven2 using the registered transporter factories: WagonTransporterFactory: java.util.NoSuchElementException
[ERROR] role: org.apache.maven.wagon.Wagon
[ERROR] roleHint: https
해결방법은 이클립스 상에서 메이븐을 실행시키는 것이 아니라 컴퓨터에 메이븐을 설치하고 CMD에서 명령어로 실행시키는 것
MAVEN_HOME 변수를 새로 생성하고
Path에 %MAVEN_HOME%\bin을 추가한다.
빌드가 필요한 소스코드로 이동하고 Shift + 마우스 우클릭을 해서 "여기서 PowerShell 실행"을 클릭한다.
PowerShell에서 cmd로 전환하려면 PowerShell창에 cmd를 입력한다.
메이븐 install을 하려면
mvn clean install -Dhttps.protocols=TLSv1.2
메이븐 build를 하려면
mvn clean install package -Dhttps.protocols=TLSv1.2
을 입력하고 target폴더에 생성된 jar 또는 war 파일을 배포
한번 Install을 성공하면 이클립스에서 메이븐을 실행해도 정상적으로 동작한다.
와 정말 유익해요! 퍼가요~☆