나는 하루에 할 수있는 거의 모든 StackOverflow의 아파치 웹 사이트 및 모든 연구,하지만이 작업을 얻을 관리 할 수 있습니다.
나는이 Maven 3.0.5
와 Jdk8
설정 (특히 스택, 그리고 버전은 수정되지 않습니다)을 방랑 환경의 내부. 나는 알고 있어요 Apache
, 그렇지 않으면 받는다는 클라이언트 저장소 서버에 말할 수 없습니다 만 HTTPS 사용에 모든 메이븐 저장소를 강제로의 결정.
내에서 필요한 모든 설정을 구성한 것 같아 ~/.m2/settings.xml
몇 가지 매우 이상한 이유로 내가 어떤 명령을 실행할 때 (모든 빌드 단계는, 말, mvn clean
HTTP에) 메이븐 기본값을하고 Settings.XML이 걱정하지 않습니다 - 다운로드 참고 문헌이 아직 시도 / HTTP 프로토콜에 의존.
내 예 settings.xml
(단순화하기 위해, 내가 프로젝트 특정 물건을 제거 만이 남아, 그것은 이것으로도 작동하지 않습니다)
<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
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2/</url>
</repository>
</repositories>
여기에 내가 테스트 명령 얻고 무엇인가 mvn archetype:generate
(문제가 다른 빌드 단계 명령에 대한 지속적)
[INFO] 프로젝트 스캔 ... 다운로드 : http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom 받는다는 - 클린 플러그인 : 2.5 : 플러그인 org.apache.maven.plugins : 받는다는 - 클린 플러그인 : org.apache.maven.plugins에 대한 플러그인 설명을 검색하지 못했습니다 [경고] 2.5 또는 해당 종속성 중 하나를 확인할 수 없습니다 : 받는다는 - 클린 플러그인 : org.apache.maven.plugins에 대한 유물 설명을 읽지 못했습니다 항아리 : 2.5 다운로드 : http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- 설치 - 플러그인 / 2.3 / 받는다는 설치 - 플러그인 - 2.3.pomorg.apache.maven.plugins에 대한 플러그인 설명을 검색하지 못했습니다 [경고] : - - 플러그인 설치를 받는다는 : 2.3 : 플러그인 org.apache.maven.plugins을 : 받는다는 설치 - 플러그인 : 2.3 또는 해당 종속성 중 하나를 확인할 수 없습니다 : org.apache.maven.plugins에 대한 유물 설명을 읽지 못했습니다 : 받는다는 설치 - 플러그인 : 항아리 : 2.3 다운로드 : http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- - 플러그인 배포 / 2.7 / 받는다는 구축이 플러그 - 2.7.pom 받는다는 구축이 플러그인 : 2.7 : 플러그인을 org.apache.maven.plugins : org.apache.maven.plugins위한 플러그인 디스크립터를 검색하는 데 실패 [경고] 받는다는 -deploy - 플러그인 : 2.7 또는 해당 종속성 중 하나는 확인할 수 없습니다 : 받는다는 - 배포 - 플러그인 : 항아리 : 2.7 다운로드를 org.apache.maven.plugins에 대한 유물 설명을 읽지 못했습니다 :http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-site-plugin/3.0/maven-site-plugin-3.0.pom [경고] 조직에 대한 플러그인 설명을 검색하지 못했습니다. apache.maven.plugins : 받는다는 - 플러그인 사이트 : 3.0 : 플러그인 org.apache.maven.plugins : 받는다는 - 사이트 플러그인 : 3.0 또는 해당 종속성 중 하나는 확인할 수 없습니다 : org.apache에 대한 유물 설명을 읽지 못했습니다. maven.plugins : 받는다는 - 사이트 플러그인 : 항아리 : 3.0 다운로드 : http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-antrun-plugin/1.3/maven-antrun-plugin -1.3.pomorg.apache.maven.plugins에 대한 플러그인 설명을 검색하지 못했습니다 [경고] : 받는다는 - antrun - 플러그인 : 1.3 : 플러그인 org.apache.maven.plugins : 받는다는 - antrun - 플러그인 : 1.3 또는 해당 종속성 중 하나를 확인할 수 없습니다 : 받는다는 - antrun - 플러그인 : org.apache.maven.plugins에 대한 유물 설명을 읽지 못했습니다 항아리 : 1.3 다운로드 : http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- 어셈블리 플러그인 / 2.2 베타 - 5 / 받는다는 어셈블리 - 플러그인 -2,2- 베타 5.pom org.apache.maven.plugins위한 플러그인 디스크립터를 검색하는 데 실패 [경고] 받는다는 어셈블리 - 플러그인 : 2.2 베타 5 : 플러그인 org.apache.maven.plugins : 받는다는 - 조립 플러그인 : 2.2 베타-5 또는 해당 종속성 중 하나가 해결 할 수 없습니다 org.apache.maven.plugins에 대한 유물 설명을 읽지 못했습니다 : 받는다는 - assembly- 플러그인 : 항아리 : 2.2 - 베타 - 5 다운로드 :http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-dependency-plugin/2.1/maven-dependency-plugin-2.1.pom [경고] 조직에 대한 플러그인 설명을 검색하지 못했습니다. apache.maven.plugins : 받는다는 - 플러그인 종속성 : 2.1 : 플러그인 org.apache.maven.plugins : 받는다는 - 종속성 - 플러그인 : 2.1 또는 해당 종속성 중 하나를 해결 할 수 없습니다 org.apache에 대한 유물 설명을 읽지 못했습니다. maven.plugins : 받는다는 - 종속성 - 플러그인 : 항아리 : 2.1 다운로드 : http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-release-plugin/2.0/maven-release-plugin -2.0.pom받는다는 출시 - 플러그인 : org.apache.maven.plugins에 대한 플러그인 설명을 검색하지 못했습니다 [경고] 2.0 : 플러그인 org.apache.maven.plugins : 받는다는 출시 - 플러그인 : 2.0 또는 해당 종속성 중 하나는 확인할 수 없습니다 : 받는다는 출시 - 플러그인 : 항아리 : 2.0 다운로드 : org.apache.maven.plugins에 대한 유물 설명을 읽지 못했습니다 http://repo.maven.apache.org/maven2/org/codehaus/mojo/maven-metadata을. XML 다운로드 : http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml [경고] 메타 데이터 org.apache.maven.plugins / 받는다는-metadata.xml을 전송할 수 없습니다 중앙에 /에서 ( http://repo.maven.apache.org/maven2 ) : 전송 파일에 실패 : http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata .XML. 리턴 코드는 다음과 같습니다 (501), ReasonPhrase : HTTPS 필수. [경고] 중앙 (에 /에서 메타 데이터 org.codehaus.mojo / 받는다는-metadata.xml을 전송할 수 없습니다 http://repo.maven.apache.org/maven2 전송 파일에 실패 :) HTTP : //repo.maven .apache.org / maven2 / 조직 / codehaus / 모조 / 받는다는-metadata.xml . 리턴 코드는 다음과 같습니다 (501), ReasonPhrase : HTTPS 필수. 전사 org.apache.maven.plugins /로부터 받는다는-metadata.xml 내지 [경고] 실패 http://repo.maven.apache.org/maven2 로컬 저장소에 캐싱 된은 해상도의 갱신주기까지 재 시도되지 중앙이 경과하거나 업데이트가 강제된다. 원래 오류 : (중앙에 /에서 메타 데이터 org.apache.maven.plugins / 받는다는-metadata.xml을 전송할 수 없습니다 http://repo.maven.apache.org/maven2) : 전송 파일에 실패 http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-metadata.xml . 리턴 코드는 다음과 같습니다 (501), ReasonPhrase : HTTPS 필수. [경고] 발 / 받는다는-metadata.xml org.codehaus.mojo 전송에 실패 http://repo.maven.apache.org/maven2는 중앙의 업데이트 간격이 될 때까지 로컬 저장소에 캐싱하고, 해상도가 재 시도되지 경과 또는 업데이트가 강제된다. 원래 오류 : 중앙에 /에서 메타 데이터 org.codehaus.mojo / 받는다는-metadata.xml을 전송할 수 없습니다 ( http://repo.maven.apache.org/maven2 ) : 전송 파일에 실패했습니다 : HTTP : //repo.maven .apache.org / maven2 / 조직 / codehaus / 모조 / 받는다는-metadata.xml . 리턴 코드는 다음과 같습니다 (501), ReasonPhrase : HTTPS 필수 .
내가 무엇을하여야한다? 당신이 보는대로, HTTP를 사용시, 나는 그에 HTTP 501 얻을.
나는이 모든 일에 썼다, 나는 그것의 가치는 경험, 디버깅의 결과와이 문제를 해결하는 방법을 공유 할 생각합니다.
두 가지 문제가 있었다 :
1) 에 대한 플러그인 설명을 검색하지 못했습니다 [경고] .. (어떤 이름) 플러그인 거의 모든 빌드 단계에서 경고를 (청소, 패키지 또는 등),의 (중요 >>) 검색 말한다 기술자 또는 해당 종속성을 플러그인 ( 하는 수단의 플러그인 , 아닌 프로젝트 종속성 !) 성공 않을 것입니다.
(이 경우)이의 이유 받는다는 시도를 통해 엔드 포인트 장치 (저장소)와 통신 할 수 있다는 점이다 HTTP (당신이 질문의 인용에서 보는 바와 같이), 사실에도 불구하고 (!), 내 구성 사용자 정의했음을 .m2\settings.xml
파일 및 모든 저장소 정의 항목이 정의 HTTPS로 각각 받는다는 것 같아이를 통해 모든 것을 시도해야한다 HTTPS 아니, 그것을 사용 ..하지만 HTTP를 플러그인에 대한 메이븐 저장소에있는 모든 HTTP 통신입니다 월 2020 15 일부터 금지 .
나는이 문제를 해결하는 방법은 정의하고 구성하는 것입니다 <profiles/>
과 <pluginRepositories/>
같이 제안 @carlspring ,하지만 정교하고 대답을 조금 확장했다. 그래서, 여기 내 준비 settings.xml
예 : (주, 안전을 것을, 나는 대안 모두에서 저장소 제공 - 프로파일 및 저장소)
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" $ xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<profiles>
<profile>
<id>ssl-profile</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<repositories>
<repository>
<id>central-1</id>
<url>https://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central-2</id>
<url>https://repo1.maven.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<repositories>
<repository>
<id>central1</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<id>central2</id>
<url>https://repo.maven.apache.org/maven2/</url>
</repository>
</repositories>
</profiles>
</settings>
이 해결, 그리고 마지막으로 받는다는이 구성을 가져다 통해 모든 저장소에 연결을 시도하기 시작 후 HTTPS , 나는 또 다른 있었다 - 두번째 문제.
2) 인증되지 피어 다음 반환 코드 : 501, ReasonPhrase : HTTPS 필수.
이것은 조금 까다했지만,이 문제를 해결하는 방법은 신뢰를 플레이하는 cacerts
파일입니다. 첫째, 신뢰 파일이 있는지 여부를 확인 cacerts
하고 비어 여부! 그것은 비워 둘 수 없습니다 이것은 매우 중요합니다. 처럼 보인다 OpenJDK11
및 일부 다른 일부 윈도우 / 리눅스 배포판 빌드 cacerts
파일이 하나 없거나 비어; 그러나, 내 관찰에 따르면,에 존재 OracleJDK
구축합니다.
- 에
Windows
구축, 그것은 아래에 있어야한다%JAVA_HOME%\lib\security\
; - 리눅스 빌드, 그것은 (리눅스 배포판과 설정에 따라) 다를 수 있지만 내 경우에는, 그 아래에 있었다
/etc/ssl/certs
(그리고 나는 리눅스의 인증서하지 특히 자바의 한 폴더 생각).
당신이 볼 (당신이있는 경우에 당신이 가장 가능성이 표시되면 피어가 인증되지 않은 문제가) 당신이 중 하나를하지 않아도 cacerts
파일을하거나 비어 (단순히 파일 크기를 확인, 그것은 몇 비트보다 커야한다), 다음 중 하나를 수행 할 수 있습니다
- 간단히 복사 - 붙여 넣기 기존의
cacerts
다른 JDK / JRE 빌드에서 파일을; - 생성
cacerts
신뢰 파일을하고 여기에 인증서를 추가 (당신이 필요로하는이 경우에, 당신은 그래서 어쩌면 그냥 복사 - 붙여 넣기로 이동하기 쉽게, 많은 인증서로 추가해야합니다)
이게 도움이 되길 바란다.