Sự phụ thuộc của Maven không thành công với lỗi 501


154

Gần đây, các công việc xây dựng Maven chạy trong Jenkins đang thất bại với ngoại lệ dưới đây nói rằng họ không thể rút các phụ thuộc từ Maven Central và nên sử dụng HTTPS . Tôi không chắc chắn cách thay đổi các yêu cầu từ HTTP sang HTTPS . Ai đó có thể hướng dẫn tôi về vấn đề này?

[LỖI] Unresolveable xây dựng mở rộng:
Plugin org.apache.maven.wagon:wagon-ssh:2.1hoặc một trong các phụ thuộc của nó không thể được giải quyết:
Không thể phụ thuộc thu thập cho org.apache.maven.wagon:wagon-ssh:jar:2.1 ():
Không thể đọc mô tả vật cho org.apache.maven.wagon:wagon-ssh:jar:2.1:
Không thể chuyển vật org.apache.maven.wagon:wagon-ssh:pom:2.1từ / đến trung tâm ( http: //repo.maven.apache. org / maven2 ):
Không thể chuyển tệp: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .
Mã trả về là:501, ReasonPhrase:HTTPS Required. -> [Help 2]

Chờ Jenkins hoàn thành việc thu thập data[ERROR]
Plugin org.apache.maven.plugins:maven-clean-plugin:2.4.1hoặc một trong các phần phụ thuộc của nó không thể được giải quyết:
Không thể đọc mô tả giả cho org.apache.maven.plugins:maven-clean-plugin:jar:2.4.1:
Không thể chuyển tạo phẩm org.apache.maven.plugins:maven-clean-plugin:pom:2.4.1từ / sang trung tâm ( http://repo.maven.apache.org/maven2 ):
Không thể chuyển tập tin: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.4.1/maven-clean-plugin-2.4.1.pom .
Mã trả về là:501 , ReasonPhrase:HTTPS Required. -> [Help 1]


5
Bạn đang sử dụng url repo.maven.apache.org/maven2 để kết nối với trung tâm maven, thay vào đó hãy sử dụng repo.maven.apache.org/maven2 tức là sử dụng kết nối https
Manjunath HM

2
kiểm tra settings.xmljenkins của bạn để biết url trung tâm của maven
varontron

Xin chào Manjunath, tôi có cùng một vấn đề. Bạn có biết cách buộc maven sử dụng HTTPS thay vì HTTP
Lahiru Madushanka

@Lahiru Madushanka đi qua các liên kết, vì vậy bạn nhận được câu trả lời cho câu hỏi stackoverflow.com/questions/25393298/ của mình
Manjunath HM

1
Tôi đã thay đổi phiên bản maven thành 3.6.3 và nó vẫn hiển thị cùng một lỗi
dhS

Câu trả lời:


129

Lý do cho lỗi quan sát được giải thích trong Trung tâm 501 HTTPS Bắt buộc

Có hiệu lực từ ngày 15 tháng 1 năm 2020, Kho lưu trữ trung tâm không còn hỗ trợ giao tiếp không an toàn qua HTTP đơn giản và yêu cầu tất cả các yêu cầu đến kho lưu trữ được mã hóa qua HTTPS.

Có vẻ như các phiên bản mới nhất của Maven (đã thử với 3.6.0, 3.6.1) đã sử dụng URL HTTPS theo mặc định.

Dưới đây là ngày mà các kho lưu trữ chính sẽ chuyển đổi:

Các bản dựng Java của bạn có thể bị hỏng bắt đầu từ ngày 13 tháng 1 (nếu bạn chưa chuyển quyền truy cập repo sang HTTPS)

Cập nhật: Có vẻ như từ maven 3.2.3 maven trung tâm được truy cập qua HTTPS Xem https://stackoverflow.com/a/25411658/5820670

Nhật ký thay đổi Maven ( http://maven.apache.org/docs/3.2.3/release-notes.html )


26
Chào! Tôi là nhà nghiên cứu ban đầu khởi xướng sáng kiến ​​toàn ngành này. Bạn cũng có thể tìm thấy bài đăng trên blog của tôi về những ngày quan trọng ở đây: Medium.com/@jonathan.leitschuh/ Khăn
Jonathan Leitschuh

1
@JonathanLeitschuh xin vui lòng viết một câu trả lời đầy đủ có thể được bình chọn và chấp nhận ...
Thorbjørn Ravn Andersen

1
Tôi đang sử dụng maven 3.6.0 trên Ubuntu 18.04 nhưng dường như không sử dụng url https.
Ashutosh

@Ashutosh: điều tương tự ở đó với Maven 3.6.1 trên Ubuntu 19.10. Tôi không chắc tại sao lại như vậy, nó có thể là một bản vá Ubuntu, nhưng tại sao họ lại làm vậy?). Để giải quyết vấn đề này, hãy sử dụng bất kỳ câu trả lời nào dưới đây để cập nhật settings.xmltệp (và nâng cấp chúng, vì đây là giải pháp chính xác, ngoài việc sử dụng Maven đã vá).
Guss

Vì vậy, tôi đã cấu hình rõ ràng settings.xmlđể sử dụng kho HTTPS .. nó có thể, wgetnhưng vì một lý do rất lạ, mvn archetype:generate -X(để kiểm tra xem phụ thuộc có thể được tải xuống không), nó vẫn in nó đang truy cập vào Downloading: http://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom Bất kỳ trợ giúp nào, làm ơn ..?
Giorgi Tsiklauri

61

Tôi đang đối mặt với vấn đề tương tự. Có hai giải pháp mà tôi đã thử, và cả hai đều hoạt động tốt với tôi.

  • Cập nhật kho lưu trữ phiên bản Maven (phiên bản Maven> = 3.2.3)
  • Hạn chế phiên bản Maven hiện tại để sử dụng các liên kết HTTPS.

Cập nhật kho phiên bản Maven:

Tải xuống tệp nhị phân Apache Maven bao gồm các địa chỉ https mặc định ( nhị phân Apache Maven 3.6.3 ). Và mở cửa sổ hộp thoại Tùy chọn trong các công cụ của thanh menu NetBeans ( Chế độ xem hộp thoại Java Maven ). Và chọn tùy chọn duyệt trong Hộp danh sách nhà Maven ( Chế độ xem hộp danh sách nhà Maven ). Sau khi thêm phiên bản mới được tải xuống của Apache Maven ( Chế độ xem hộp danh sách trang chủ Maven được cập nhật ), dự án sẽ xây dựng và chạy thành công.

Hạn chế phiên bản Maven hiện tại để sử dụng các liên kết HTTPS:

Bao gồm đoạn mã sau trong pom.xml của dự án của bạn.

<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>

Tôi đã có kho lưu trữ trung tâm nhưng không phải là kho lưu trữ plugin trung tâm. Điều đó đã sửa nó cho tôi.
suy nghĩ275

1
Hạn chế phiên bản Maven hiện tại để sử dụng các liên kết HTTPS: làm việc cho tôi.
Mohammad Anas

Trong trường hợp của tôi, tôi đã bỏ lỡ phần <pluginRep repository> và tôi đã gặp lỗi khi sử dụng nguyên mẫu vì nó được mặc định là http cho các plugin.
user1708042

Điều này cũng đã sửa nó cho tôi nhưng tôi đã nhận được một lỗi khác "Nhận được cảnh báo nghiêm trọng: Protocol_version" và phải chuyển sang java 8 để sửa nó, trong trường hợp có ai vấp phải vấn đề tương tự.
Kim Tang

Tôi rất vui vì đã đóng góp upvote phá vỡ cà vạt. Câu trả lời này giải quyết vấn đề tương tự tôi đã gặp phải.
Rủi ro Brian

36

Có hiệu lực từ ngày 15 tháng 1 năm 2020, Kho lưu trữ trung tâm không còn hỗ trợ giao tiếp không an toàn qua HTTP đơn giản và yêu cầu tất cả các yêu cầu đến kho lưu trữ được mã hóa qua HTTPS .

Nếu bạn nhận được lỗi này, thì bạn cần thay thế tất cả các tham chiếu URL đến Maven Central bằng các đối tác HTTPS chính tắc của chúng.

( nguồn )

Chúng tôi đã thực hiện các thay đổi sau trong build.gradle của dự án của tôi:

Cũ:

repositories {
   maven { url "http://repo.maven.apache.org/maven2" }
}

Mới:

repositories {
   maven { url "https://repo.maven.apache.org/maven2" }
}

Có, tôi đã thay thế trong tệp settings.xml nhưng tiếc là nó vẫn không hoạt động. Tôi đang làm đúng hay có bất kỳ tập tin nào khác cần phải thay đổi?
Sumeet Vishwas

@SumeetVishwas Bạn có thể chia sẻ tệp cài đặt mẫu không?
Arunan Sugunakumar

3
@ArunanSugunakumar tôi đã không thay đổi trong settings.xml. Tất cả bạn cần thay đổi trong POM. cập nhật kho trung tâm của maven. Tôi đặt mẫu của kho lưu trữ trung tâm trong chủ đề trả lời. vui lòng tìm bên dưới
Sumeet Vishwas

1
Câu hỏi của OP nói: "Tôi không chắc chắn cách thay đổi các yêu cầu từ HTTP sang HTTPS." Câu trả lời này không giải quyết câu hỏi.
wchargein

28

Cố gắng nhấn URL dưới đây trong bất kỳ trình duyệt. Nó sẽ trở lại 501

http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom

Vui lòng thử với https. Nó sẽ tải xuống một tệp pom.xml:

https://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom

Vui lòng thêm nó ( https://repo.maven.apache.org/maven2 ) trong tệp settings.xml:

<repositories>
   <repository>
      <id>Central Maven repository</id>
      <name>Central Maven repository https</name>
      <url>https://repo.maven.apache.org/maven2</url>
   </repository>
</repositories>

1
Bạn có thể vui lòng cung cấp một ví dụ về một tệp cài đặt đầy đủ vì tôi đã cố gắng không thành công để thêm phần trên vào tệp không?
jhertz

Tìm thấy câu trả lời này làm cho vị trí trong tệp rõ ràng hơn, bây giờ nó hoạt động: stackoverflow.com/a/59784045/3120576
jhertz

22

Cập nhật kho lưu trữ trung tâm của Maven và sử dụng https thay vì http .

<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>

Tôi đã thử điều này trong Pom và nó hoạt động tốt: <kho lưu trữ> <kho lưu trữ> <id> trung tâm repo https </ id> <name> Trung tâm lưu trữ trung tâm </ name> <url> repo.maven.apache.org/maven2</ url > </ repository> </ kho>.
lam

1
Cảm ơn. Điều này đang hoạt động trong Ubuntu 18.10, sử dụng Netbeans. Phải đặt Maven về nhà phiên bản Maven mới nhất trong Netbeans. Bạn đã tìm thấy giải pháp này ở đâu?
Sanal S

Bạn có thể phải cập nhật kho plugin. Ít nhất nó cũng phải được thực hiện cho tôi, để được sửa chữa.
Kim Tang

16

Tôi đã sử dụng bản cài đặt Maven / Java sạch trên bộ chứa Docker.

Đối với tôi, tôi đã phải cd $M2_HOME/confvà chỉnh sửa các settings.xmltập tin ở đó. Thêm khối sau vào bên trong<mirrors>...</mirrors>

<mirror>
  <id>central-secure</id>
  <url>https://repo.maven.apache.org/maven2</url>
  <mirrorOf>central</mirrorOf>
</mirror>

Bạn có thể vui lòng chia sẻ Dockerfile của bạn? Tôi có cùng một vấn đề nhưng tôi không biết làm thế nào để khắc phục điều đó!
Han Van Phạm

@HanVanPham Tôi đã cập nhật maven của tôi lên phiên bản mới nhất, nó đã sửa lỗi http này.
mehulmpt

Đối với tôi, sự thích ứng của khối bảo mật trung tâm trong tệp cài đặt cục bộ ($ HOME / .m2 / settings.xml) đã hoạt động hoàn hảo.
t3az0r

13

Tôi đã sử dụng một phiên bản lỗi thời của Maven (3.0.3 và 3.1). Các phiên bản cũ hơn không còn hỗ trợ kho http (như đã đề cập ở trên). Nâng cấp lên Maven 3.6 là bản sửa lỗi cho tôi.


1
Từ maven 3.2.3, Central đang truy cập qua HTTPS theo mặc định maven.apache.org/docs/3.2.3/release-notes.html
farasath

12

Maven đang chuyển sang HTTPS và vô hiệu hóa quyền truy cập HTTP

Truyện ngắn, từ ngày 15 tháng 1 năm 2020, kho lưu trữ Maven Central không còn hỗ trợ các kết nối HTTP (các kho lưu trữ khác cũng hoạt động tương tự). Do đó, bạn sẽ cho biết cài đặt Maven / Gradle của mình để sử dụng URL HTTPS.

Giải pháp:

Bạn có thể chọn một trong ba cách tiếp cận sau.

  1. Thêm một kho lưu trữ trong pom.xmltập tin dự án của bạn

    <project>
    ...
      <repositories>
        <repository>
          <id>central maven repo</id>
          <name>central maven repo https</name>
          <url>https://repo.maven.apache.org/maven2</url>
        </repository>
      </repositories>
    </project>
  2. Thêm kho lưu trữ vào một hồ sơ trong settings.xmltập tin.

    <profile>
      <id>my profile</id>
      <repositories>
        <repository>
          <id>central maven repo</id>
          <name>central maven repo https</name>
          <url>https://repo.maven.apache.org/maven2</url>
          </repository>
      </repositories>
    </profile>
  3. Cập nhật phiên bản maven của bạn lên phiên bản mới sử dụng giá trị https làm mặc định. Cái cuối cùng tại thời điểm này 3.6.3 Tải xuống tại đây

Dành cho học sinh lớp:

Chỉ thay thế URL cho phiên bản HTTPS.

repositories {
   maven { url "https://repo.maven.apache.org/maven2" }
}

Để nâng cấp (3.3.9 lên 3.6.3) trước tiên bạn cần gỡ cài đặt hoàn toàn phiên bản cũ hơn? Hay chỉ cần cài đặt phiên bản mới nhất?
BigRedEO

1
@BigRedEO Bạn có thể có nhiều hơn một phiên bản maven trong môi trường của mình. Tuy nhiên, các biến env $M2_HOMEcủa bạn hoặc của bạn $PATH sẽ chỉ trỏ đến một trong số chúng, đây sẽ là phiên bản maven mặc định của bạn. Tôi muốn gỡ cài đặt cái cũ hơn trước khi cài đặt cái mới hơn. Nhưng, điều đó phụ thuộc vào nhu cầu của bạn.
Adam M. Gamboa G.

10

Tôi đã được thêm đoạn mã sau vào tệp cài đặt và nó đã được giải quyết vấn đề,

<mirrors>
    <mirror>
        <id>maven-mirror</id>
        <name>Maven Mirror</name>
        <url>https://repo.maven.apache.org/maven2</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

9

Tôi có cùng một vấn đề, nhưng tôi sử dụng GitLab thay vì Jenkins. Các bước tôi phải làm để khắc phục vấn đề:

  1. Dự án của tôi nằm trong GitLab vì vậy nó sử dụng tệp .yml trỏ đến hình ảnh Docker mà tôi phải tích hợp liên tục và hình ảnh mà nó sử dụng có URL http: // maven . Vì vậy, tôi đã thay đổi nó thành https: // maven .
  2. Hình ảnh Dockerfile tương tự có phiên bản cũ hơn của Maven 3.0.1 khiến tôi gặp sự cố chỉ sau một đêm. Tôi đã cập nhật Dockerfile để có phiên bản mới nhất 3.6.3
  3. Sau đó tôi đã triển khai hình ảnh đó vào kho lưu trữ trực tuyến của mình và cập nhật ymlfile dự án Maven của tôi để sử dụng hình ảnh mới đó.
  4. Và cuối cùng, tôi đã cập nhật tệp POM dự án chính của mình để tham khảo https: // maven ... thay vì http: // maven

Tôi nhận ra rằng đó là cụ thể hơn để thiết lập của tôi. Nhưng không thực hiện tất cả các bước trên, tôi vẫn sẽ tiếp tục nhận được thông báo lỗi này Return code is: 501 , ReasonPhrase:HTTPS Required


Bạn có thể vui lòng chia sẻ Dockerfile của bạn?
Han Van Phạm

8

Như đã nêu trong các câu trả lời khác, https hiện bắt buộc phải yêu cầu Maven Central, trong khi các phiên bản cũ hơn của Maven sử dụng http .

Nếu bạn không muốn / không thể nâng cấp lên Maven 3.2.3+, bạn có thể giải quyết bằng cách thêm mã sau vào MAVEN_HOME \ conf \ settings.xml vào <profiles>phần:

<profile>
    <id>maven-https</id>
    <activation>
        <activeByDefault>true</activeByDefault>
    </activation>
    <repositories>
        <repository>
            <id>central</id>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>central</id>
            <url>https://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories> 
</profile>

Đây sẽ luôn là một cài đặt hoạt động trừ khi bạn tắt / ghi đè nó trong POM của bạn khi cần.


7

Đối với tất cả các lập trình viên công ty, lý tưởng nhất là nếu bạn gặp lỗi này, điều đó có nghĩa là cơ sở mã của bạn vẫn đang được xây dựng từ cộng đồng nguồn mở. Bạn cần vượt qua kho lưu trữ "trung tâm" với trình quản lý kho lưu trữ Maven của công ty nội bộ.

Bạn có thể truy cập tệp cài đặt của bạn và ghi đè URL kho lưu trữ trung tâm của bạn từ http: // đến https: //

<M2_HOME>/conf/settings.xml

Tìm các phần gương và thêm mục sau:

    <mirror>
     <id>other-mirror</id>
     <name>Other Mirror Repository</name>
     <url>https://other-mirror.repo.other-company.com/maven2</url>
     <mirrorOf>central</mirrorOf>
    </mirror>

Trong phần URL, nếu bạn đang sử dụng http://repo1.maven.org/maven2/ hoặc http://repo.maven.apache.org/maven2/ thì

Thay thế http://repo1.maven.org/maven2/ bằng https://repo1.maven.org/maven2/

Thay thế http://repo.maven.apache.org/maven2/ bằng https://repo.maven.apache.org/maven2/

Bạn cần sử dụng lý tưởng URL quản lý / kho lưu trữ kiểm soát nguồn của công ty ở đây. Vì điều này sẽ chặn mọi liên hệ với cộng đồng kho lưu trữ Maven nguồn mở.

Như đã đề cập trong các câu trả lời khác, có hiệu lực từ ngày 15 tháng 1 năm 2020, kho lưu trữ Maven trung tâm không hỗ trợ giao tiếp không an toàn trên HTTP đơn giản.


Sau khi thêm gương trong phần gương tôi đã gặp lỗi, đồng đẳng đó không được xác thực. Tôi nên làm gì bây giờ? Cảm ơn!
dimson

@dimson Điều này có nghĩa là bạn đã cố gắng kết nối với https nhưng bạn đã thiếu chứng chỉ để xác thực, có thể là do Java không có nó. Nhập chứng chỉ từ kho lưu trữ vào kho khóa java hoặc nâng cấp java.
tibortru

@tibortru Thanx Man, đã giải quyết được vấn đề. Tôi đã thêm các thuộc tính này vào maven trong IDE: maven.wagon.http.ssl.insecure = true maven.wagon.http.ssl.allowall = true maven.wagon.http.ssl.ignore.valids.dates = true https. giao thức = TLSv1, TLSv1.1, TLSv1.2. Sau đó tất cả hoạt động tốt.
dimson

Các bạn, đó là cách khác. Không an toàn :)
tibortru

7

Đối với tôi (coder công ty) cũng thêm một kho lưu trữ nhân bản trong settings.xmlvấn đề đã được sửa. Tôi cũng đang sử dụng Maven bên trong một container docker.

<mirrors>
    <mirror>
        <id>https-mirror</id>
        <name>Https Mirror Repository</name>
        <url>https://repo1.maven.org/maven2</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
</mirrors>

Bạn có thể chỉ cho tôi nơi chúng tôi có thể tìm thấy tệp settings.xml, @Oscar không?
Han Van Phạm

Chắc chắn rồi! Trong Dockerfile của chúng tôi, trước tiên chúng tôi đặt nó vào một thư mục tạm thời như thế này: echo "<settings> <mirror> .... </ mirror> </ settings>"> /tmp/maven-sinstall.xml. Sau đó, chúng tôi chạy maven với tùy chọn "-s" và chuyển đường dẫn đến tệp cài đặt như "mvn -s /tmp/maven-sinstall.xml" này. Hy vọng nó giúp!
Oscar Drai

@ han-van-pham bạn tìm thấy nó trong $ HOME / .m2 /. Nếu không, tạo nó ở đó.
dr0i

4

Sử dụng Ubuntu 16.04, java 1.8.0_201.

Tôi chưa cài đặt maven cũ và cài đặt Maven 3.6.3, vẫn gặp lỗi này khi phụ thuộc Maven bị lỗi với lỗi 501.

Nhận ra nó có thể là một vấn đề về Truststore / keystore liên quan đến việc yêu cầu https. Tìm thấy rằng bây giờ bạn có thể định cấu hình các tùy chọn -Djavax bằng tệp jvm.config, xem: https://maven.apache.org/configure.html .

Vì tôi cũng đang sử dụng Tomcat, tôi đã sao chép cấu hình keystore & truststore từ Tomcat (setenv.sh) sang jvm.config của tôi và sau đó nó hoạt động!

Ngoài ra còn có một tùy chọn để vượt qua cấu hình này trong 'export MAVEN_OPTS' (khi sử dụng mvn tạo) nhưng mặc dù điều này đã dừng lỗi 501 nhưng nó đã tạo ra một tệp pom khác.

Tạo một tệp jvm.config riêng biệt hoạt động hoàn hảo, chỉ cần đặt nó vào thư mục gốc của dự án của bạn.

Hy vọng điều này sẽ giúp được ai đó, tôi đã mất cả ngày để tìm ra nó!


4

Vấn đề tương tự cũng xảy ra cho jcenter .

Từ ngày 13 tháng 1 năm 2020 trở đi, Jcenter chỉ có sẵn tại HTTPS.

Các dự án nhận được sự phụ thuộc của họ bằng cách sử dụng tương tự sẽ bắt đầu phải đối mặt với các vấn đề. Để khắc phục nhanh, hãy làm như sau trong bản build.gradle của bạn

thay vì

repositories {
jcenter ()
//others
}

dùng cái này:

repositories {
jcenter { url "http://jcenter.bintray.com/"}
//others
}

4

Lỗi:

Không thể chuyển tệp: http://repo.maven.apache.org/maven2/org/apache/maven/wagon/wagon-ssh/2.1/wagon-ssh-2.1.pom .

Mã trả về là: 501, ReasonPhrase: HTTPS Bắt buộc.

Phân tích nguyên nhân gốc rễ:

Maven trung tâm đang mong đợi rằng các máy khách sử dụng https, nhưng máy khách chỉ thực hiện yêu cầu HTTP đơn giản.

Do đó, yêu cầu tải xuống gói có tên 'wagon-ssh-2.1.pom' đã thất bại.

Làm thế nào để khắc phục vấn đề?

Thay thế URL " http://repo.maven.apache.org/maven2 "

với " https://repo.maven.apache.org/maven2 "

trong tệp pom.xml hoặc tệp build.gradle của dự án.


2
Tôi thay thế url này ở đâu
dhS

3

Chia sẻ điều này trong trường hợp bất cứ ai cần nó:

Cấu hình Gradle cũ (không có Gitlab, triển khai Docker, cho các dự án đơn giản)

repositories {
google()
jcenter()

maven { url "http://dl.bintray.com/davideas/maven" }
maven { url 'https://plugins.gradle.org/m2/' }
maven { url 'http://repo1.maven.org/maven2' }
maven { url 'http://jcenter.bintray.com' }
}

Cấu hình mới:

repositories {
google()
jcenter()

maven { url "https://dl.bintray.com/davideas/maven" }
maven { url 'https://plugins.gradle.org/m2/' }
maven { url 'https://repo1.maven.org/maven2' }
maven { url 'https://jcenter.bintray.com' }
}

Lưu ý https. Chúc mừng mã hóa :)


3

Môi trường hiện tại của tôi không hỗ trợ HTTPS, vì vậy việc thêm phiên bản không an toàn của repo đã giải quyết vấn đề của tôi: http://insecure.repo1.maven.org theo Sonatype

    <repositories>
       <repository>
          <id>Central Maven repository</id>
          <name>Central Maven repository insecure</name>
          <url>http://insecure.repo1.maven.org</url>
       </repository>
    </repositories>

-3

Thêm kho lưu trữ sau trong pom.xml .

<project>
...
    <repositories>
        <repository>
            <id>central</id>
            <name>Maven Plugin Repository</name>
            <url>https://repo1.maven.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
...
</project>

Điều này sẽ gây ra vấn đề tương tự vì nó đang sử dụnghttp
Yudhistira Arya

1
Tôi đã thử cái này ở Pom và nó hoạt động
Sathesh

tôi cũng đã thử và làm việc x2
Javier J Solis Flores
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.