최근 Jenkins 에서 실행되는 Maven 빌드 작업 은 Maven Central 에서 종속성을 가져올 수 없으며 HTTPS를 사용해야한다는 예외를 제외하고는 실패 합니다 . HTTP 에서 HTTPS로 요청을 변경하는 방법을 잘 모르겠습니다 . 누군가이 문제에 대해 나를 안내 할 수 있습니까?
[오류] 확인할 수없는 빌드 확장 프로그램 :
플러그인org.apache.maven.wagon:wagon-ssh:2.1
또는 해당 종속성 중 하나를 해결할 수 없습니다.
에 대한 종속성을 수집
하지 못했습니다org.apache.maven.wagon:wagon-ssh:jar:2.1 ()
:
아티팩트 디스크립터를 읽지 못했습니다org.apache.maven.wagon:wagon-ssh:jar:2.1
:
아티팩트org.apache.maven.wagon:wagon-ssh:pom:2.1
를 중앙에서 / 중앙으로 전송할 수 없습니다 ( http : //repo.maven.apache org / maven2 ) :
파일 전송 실패 : http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
리턴 코드는 다음과 같습니다.501, ReasonPhrase:HTTPS Required. -> [Help 2]
Jenkins 가
data[ERROR]
플러그인org.apache.maven.plugins:maven-clean-plugin:2.4.1
또는 종속 항목 중 하나를 수집하기를 기다리는 중을 해결할 수 없습니다.
아티팩트 디스크립터를 읽지 못했습니다org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1
:
아티팩트org.apache.maven.plugins:maven-clean-plugin:pom:2.4.1
를 중앙에서 또는 중앙으로 전송할 수 없습니다 ( http://repo.maven.apache.org/maven2 ) :
실패 전송 파일 : http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom .
리턴 코드는 다음과 같습니다.501 , ReasonPhrase:HTTPS Required. -> [Help 1]
답변
관찰 된 오류의 이유는 Central 501 HTTPS Required에 설명되어 있습니다.
2020 년 1 월 15 일부터 Central Repository는 더 이상 일반 HTTP를 통한 안전하지 않은 통신을 지원하지 않으며 리포지토리에 대한 모든 요청은 HTTPS를 통해 암호화되어야합니다.
최신 버전의 Maven (3.6.0, 3.6.1으로 시도)이 기본적으로 이미 HTTPS URL을 사용하고있는 것 같습니다.
주요 리포지토리가 전환되는 날짜는 다음과 같습니다.
1 월 13 일부터 Java 빌드가 중단 될 수 있습니다 (아직 HTTPS에 대한 repo 액세스를 전환하지 않은 경우)
업데이트 : maven 3.2.3과 같습니다. maven central은 HTTPS를 통해 액세스합니다. https://stackoverflow.com/a/25411658/5820670
메이븐 변경 로그 ( http://maven.apache.org/docs/3.2.3/release-notes.html )
답변
나는 같은 문제에 직면하고있다. 내가 시도한 두 가지 솔루션이 있으며 둘 다 잘 작동합니다.
- Maven 버전 저장소 업데이트 (Maven 버전> = 3.2.3)
- HTTPS 링크를 사용하도록 현재 Maven 버전을 제한하십시오.
Maven 버전 저장소를 업데이트하십시오.
기본 https 주소가 포함 된 Apache Maven 이진 ( Apache Maven 3.6.3 이진 )을 다운로드하십시오. 그리고 열 옵션 대화 상자 창을 넷빈즈 메뉴 바 (의 도구에서 자바 메이븐 대화보기 ). 그리고 Maven Home List Box ( Maven Home List Box View ) 에서 찾아보기 옵션을 선택하십시오 . Apache Maven 새로 다운로드 한 버전 ( 업데이트 된 Maven 홈 목록 상자보기 )을 추가하면 프로젝트가 빌드되고 성공적으로 실행됩니다.
HTTPS 링크를 사용하도록 현재 Maven 버전을 제한하십시오.
프로젝트의 pom.xml 에 다음 코드를 포함하십시오 .
<project>
...
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>
</pluginRepositories>
<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>
</project>
답변
2020 년 1 월 15 일부터 Central Repository는 더 이상 일반 HTTP를 통한 안전하지 않은 통신을 지원하지 않으며 리포지토리에 대한 모든 요청은 HTTPS를 통해 암호화되어야합니다. .
이 오류가 발생하면 Maven Central에 대한 모든 URL 참조를 표준 HTTPS로 바꿔야합니다.
( 소스 )
프로젝트의 build.gradle에서 다음과 같이 변경했습니다.
낡은:
repositories {
maven { url "http://repo.maven.apache.org/maven2" }
}
새로운:
repositories {
maven { url "https://repo.maven.apache.org/maven2" }
}
답변
모든 브라우저에서 아래 URL을 누르십시오. 501을 반환합니다
http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
https로 시도하십시오. pom.xml 파일을 다운로드합니다 :
https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom
setting.xml 파일에 추가하십시오 ( https://repo.maven.apache.org/maven2 ) :
<repositories>
<repository>
<id>Central Maven repository</id>
<name>Central Maven repository https</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
</repositories>
답변
Maven의 중앙 저장소를 업데이트하고 http 대신 https 를 사용 하십시오 .
<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>
답변
Docker 컨테이너에 Maven / Java를 새로 설치했습니다.
나를 cd $M2_HOME/conf
위해 settings.xml
파일을 편집해야 했습니다. 안에 다음 블록을 추가하십시오<mirrors>...</mirrors>
<mirror>
<id>central-secure</id>
<url>https://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
답변
오래된 Maven 버전 (3.0.3 및 3.1)을 사용하고있었습니다. 이러한 이전 버전은 더 이상 http 리포지토리를 지원하지 않습니다 (위에서 언급 한 것처럼). Maven 3.6으로 업그레이드하면 문제가 해결되었습니다.