Làm cách nào để sử dụng Maven thông qua proxy?


130

Tôi muốn chia sẻ kinh nghiệm sử dụng maven thông qua proxy.

Bạn rất có thể sẽ phải đối mặt với các ngoại lệ và tin nhắn như:

siêu dữ liệu kho lưu trữ cho: 'org.apache.maven.plugins' không thể được truy xuất từ 
kho lưu trữ: trung tâm do lỗi: Lỗi chuyển tập tin: Kết nối bị từ chối: kết nối

hoặc là

[CẢNH BÁO] Không thể truy xuất mô tả plugin cho org.apache.maven.plugins: maven-clean-
plugin: 2.5: Plugin org.apache.maven.plugins: maven-clean-plugin: 2.5 hoặc một trong số đó 
không thể giải quyết các phụ thuộc: Không thể đọc mô tả giả 
org.apache.maven.plugins: maven-clean-plugin: jar: 2.5

Làm cách nào để định cấu hình Maven để sử dụng máy chủ proxy?


(Bất cứ ai) Tâm trí lại câu hỏi này thành một câu hỏi thực tế (như: Làm thế nào để tôi sử dụng Maven thông qua proxy?)? Sau đó, bạn có thể đăng nội dung câu hỏi của mình dưới dạng câu trả lời, để trực tuyến hơn với định dạng StackOverflow ..
Tim

Tôi đã chia sẻ lại cho bạn Bogdan, vui lòng đăng nội dung ban đầu của bạn dưới dạng câu trả lời nếu bạn muốn
Người bán giàu

có vẻ như chúng tôi đã chỉnh sửa cùng một lúc
Người bán giàu có

Câu trả lời:


145

Để biết chi tiết về cách thiết lập proxy cho Maven, hãy xem hướng dẫn nhỏ .

Về cơ bản, bạn cần đảm bảo phần proxy trong cài đặt chung ( [maven install]/conf/settings.xml) hoặc cài đặt người dùng ( ${user.home}/.m2/settings.xml) được định cấu hình chính xác. Tốt hơn là làm điều này trong cài đặt người dùng của bạn để tránh lưu trữ mật khẩu ở dạng văn bản đơn giản ở một vị trí công cộng.

Maven 2.1 đã giới thiệu mã hóa mật khẩu , nhưng tôi chưa kiểm tra xem liệu mã hóa có áp dụng cho các cài đặt proxy cũng như mật khẩu kho lưu trữ hay không (không hiểu tại sao nó lại không như vậy).

Để biết thông tin, có một cấu hình proxy được nhận xét trong tệp settings.xml của bạn và hướng dẫn về cách sửa đổi nó.

Từ hướng dẫn nhỏ, cài đặt của bạn sẽ trông giống như thế này:

<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">
[...]
  <proxies>
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.somewhere.com</host>
      <port>8080</port>
      <username>proxyuser</username>
      <password>somepassword</password>
      <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
    </proxy>
  </proxies>
[...]
</settings>

Cảm ơn, nhưng bài đăng này là một mẹo cho người khác hơn là một câu hỏi. Tôi đã giải quyết vấn đề này rồi, nhưng dành quá nhiều thời gian cho những điều không rõ ràng. Tôi đã đăng nó để nó có thể hữu ích cho ai đó.
Bogdan

7
Không thể tìm thấy tệp settings.xml trong thư mục m2. bất cứ ý tưởng tại sao? @Rich Người bán
Ariox66 18/07/2015

5
Bạn phải đặt nó ở đó. Bạn có thể tìm thấy một tệp cài đặt mẫu từ maven_home, vị trí nơi bạn giải nén các tệp nhị phân maven.
Ravi

Và nếu proxy không cần xác thực, các phần tử <username><password>phải được loại bỏ (và không được cung cấp nội dung trống). Điều này làm tôi mất một lúc để tìm ra.
dmcontador

50

Làm thế nào để sử dụng một proxy vớ?

Thiết lập đường hầm SSH tới máy chủ ở đâu đó:

ssh -D $PORT $USER@$SERVER

Linux (bash):

export MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"

Các cửa sổ:

set MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"

2
Sử dụng proxy vớ MAVEN_OPTSlà cách duy nhất tôi có thể khiến Maven tải xuống qua HTTPS. Sử dụng proxy HTTP hoặc HTTPS, thông qua MAVEN_OPTShoặc settings.xml, kết quả làorg.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec execute INFO: I/O exception (java.net.SocketException) caught when processing request to {tls}->http://proxy.mycompany.com:911->https://repo.maven.apache.org:443: SOCKS: TTL expired
Mihai Capotă

Đối với httpproxy:export MAVEN_OPTS="-DproxyHost=127.0.0.1 -DproxyPort=$PORT"
Omid

Cảm ơn vô cùng. Nếu bạn muốn sử dụng các tùy chọn đó chỉ một lần cho một lệnh duy nhất, bạn có thể nhập: MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1080" mvn clean installCác mvnlệnh tiếp theo trong cùng một phiên sẽ không có bất kỳ proxy nào.
Eric Duminil

29

Tôi cũng gặp vấn đề này và tôi đã giải quyết nó bằng cách chỉnh sửa settings.xmltập tin trong .m2thư mục của mình . settings.xmlBây giờ của tôi là như thế này:

<settings>
  <proxies>
    <proxy>
      <id>genproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxyHost</host>
      <port>3128</port>
      <username>username</username>
      <password>password</password>
    </proxy>
 </proxies>
</settings>

1
Đây không phải là tải tập tin jar trong trường hợp của tôi. Tôi đã thử tất cả mọi thứ
Faizan Mubasher

28

Cũng lưu ý rằng một số plugin (tài nguyên từ xa xuất hiện) sử dụng thư viện thực sự cũ chỉ chấp nhận cấu hình proxy thông qua MAVEN_OPTS;

-Dhttp.proxyHost=<host> -Dhttp.proxyPort=<port> -Dhttps.proxyHost=<host> -Dhttps.proxyPort=<port>

Bạn có thể bị kẹt trên auth cho cái này.


Không hoạt động với tôi trên Ubuntu 14.04 với maven 3.0.5 từ kho lưu trữ Ubuntu. Định cấu hình proxy trong tệp settings.xml đã hoạt động.
Mihai Capotă

1
Làm việc cho tôi trên Ubuntu 14.04 với Maven 3.0.4
rmv 30/03/2016

Một ví dụ về việc cần thiết lập MAVEN_OPTS theo cách này là xây dựng Maven từ nguồn bằng Maven. Không có MAVEN_OPTS, không thể tải xuống LICENSE-2.0, mặc dù đã tải xuống nhiều JAR.
Permaquid

@krosenvold cảm ơn bạn, giải pháp này đã làm việc cho tôi. Tôi đã thiết lập proxy trong settings.xml nhưng có một plugin cxf muốn tạo mã từ wsdl đang bị lỗi. Điều này đã khắc phục vấn đề của tôi.
Vishal Vijayan

23

Để đặt Proxy Maven :

Chỉnh sửa phiên proxy trong tệp ~ / .m2 / settings.xml của bạn . Nếu bạn không thể tìm thấy tập tin, tạo một.

<settings>
<proxies>
    <proxy>
        <id>httpproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>
<proxy>
        <id>httpsproxy</id>
        <active>true</active>
        <protocol>https</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
    </proxy>

</proxies>
</settings>

hoặc là

Chỉnh sửa phiên proxy trong {M2_HOME} /conf/sinstall.xml của bạn

Hy vọng nó giúp.. :)


15

Chúng được gây ra bởi 2 vấn đề:

  1. Bạn cần thêm cấu hình proxy vào tệp cài đặt của bạn. Đây là một mẹo trong trường tên người dùng của bạn. Hãy chắc chắn rằng nó trông giống như tên miền \ tên người dùng. Đặt tên miền ở đó và đặt dấu gạch chéo chính xác này rất quan trọng '\'. Bạn có thể muốn sử dụng thẻ <! [CDATA []]> nếu mật khẩu của bạn chứa các ký tự không thân thiện với xml.
  2. Tôi đã nhận thấy maven 2.2.0 đôi khi không hoạt động thông qua proxy, trong đó 2.2.1 hoạt động hoàn toàn tốt.

Nếu một vài trong số đó bị bỏ qua - maven có thể thất bại với các thông báo lỗi ngẫu nhiên.

Chỉ hy vọng tôi đã cứu ai đó khỏi việc loay hoay xung quanh vấn đề này trong 6 giờ, như tôi đã làm.


Bạn đang sử dụng proxy NTLM? từ hướng dẫn nhỏ: "Xin lưu ý rằng [c] hiện tại các proxy NTLM không được hỗ trợ vì chúng chưa được thử nghiệm. Bạn có thể sử dụng các thuộc tính hệ thống có liên quan trên JDK 1.4+ để thực hiện công việc này."
Người bán giàu

Không chắc chắn về điều này. Đó là một proxy công ty đó là thực sự đặt 600 dặm từ tôi và không ai từ quản trị hệ thống là trong văn phòng vào cuối tuần này. Vì vậy, không thể hỏi bất cứ ai bây giờ. Nó sẽ rất thú vị để tìm hiểu. Tôi biết nó hỗ trợ http, vớ và các giao thức khác. Có lẽ đó là NTML.
Bogdan

14

Chỉ cần thêm kinh nghiệm của riêng tôi với điều này: proxy của công ty tôi là http://webproxy.intra.companyname.com:3128. Để maven hoạt động thông qua proxy này, các cài đặt phải chính xác như thế này

<settings>
  <proxies>
    <proxy>
      <id>default</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>webproxy.intra.companyname.com</host>
      <port>3128</port>
    </proxy>
  </proxies>
</settings>

Không giống như một số tệp cấu hình proxy khác, protocolở đây mô tả cách kết nối với máy chủ proxy, không phải loại giao thức nào nên được ủy quyền. Một httpphần của mục tiêu phải được tách ra khỏi tên máy chủ, nếu không nó sẽ không hoạt động.


Lúc này tôi mới thử nghiệm ngược lại. Giao thức ở đây là để mô tả giao thức nào nên sử dụng proxy này. Tôi vừa đạt được để định cấu hình proxy giao thức https kết nối với proxy http bằng cách sử dụng <Protocol> https </ Protocol>
Olivier Amblet 9/2/2016

Cảm ơn bạn! Điều này làm việc cho tôi! Tôi đã có "http: //" được chờ đợi trước và nó sẽ thất bại
Jesse McCall

11

Cảm ơn @krosenvold.

Nếu tệp cài đặt thay đổi không hoạt động, hãy thử điều này trong dấu nhắc lệnh có tệp POM.

mvn install -Dhttp.proxyHost=abcproxy -Dhttp.proxyPort=8080 -Dhttps.proxyHost=abcproxy -Dhttps.proxyPort=8080

Điều này đã giúp tôi ngay lập tức sau khi thay đổi mật khẩu.


11

Tôi chạy cntlmlocaly, được cấu hình bằng NTLMv2băm mật khẩu để xác thực với proxy công ty và sử dụng

export MAVEN_OPTS="-DproxyHost=127.0.0.1 -DproxyPort=3128"

để sử dụng proxy đó từ maven. Tất nhiên proxy bạn sử dụng nên hỗ trợ cntlm/ NTLMv2.


`đặt MAVEN_OPTS = -Dproxyhost = 127.0.0.1 -DproxyPort = 3128` cho các cửa sổ
qxo

PowerShell có thể đặt biến môi trường hệ thống: [Environment]::SetEnvironmentVariable("MAVEN_OPTS", "-DproxyHost=127.0.0.1 -DproxyPort=3128", "Machine")
Boggin

6

Và để thêm vào chủ đề này, đây là những trải nghiệm của tôi dưới đây ... Thực sự kỳ quặc và tốn thời gian vì vậy tôi nghĩ rằng nó đáng để thêm vào.

Tôi đã gặp một vấn đề tương tự khi cố gắng xây dựng cầu nối portlet trên Windows, gặp các lỗi sau:

Đang tải xuống: http://repo1.maven.org/maven2/org/apache/portals/ điều chỉnh-pom / 1.0 / điều chỉnh-pom-1.0.pom
[DEBUG] Đọc tệp theo dõi độ phân giải C: \ Documents and Settings \ myuser \ .m2 \ repository \ org \ apache \ portals \ Brid-pom \ 1.0 \ Brid-pom-1.0.pom.lastUpdated
[DEBUG] Viết tệp theo dõi độ phân giải C: \ Documents and Settings \ myuser \ .m2 \ repository \ org \ apache \ portals \ Brid-pom \ 1.0 \ Brid-pom-1.0.pom.lastUpdated
[ERROR] Bản dựng không thể đọc 1 dự án -> [Trợ giúp 1]
org.apache.maven.project.ProjectBu dựngException: Một số vấn đề đã gặp phải khi xử lý các POM:
[FATAL] POM cha mẹ không thể phân giải: Không thể chuyển tạo phẩm
org.apache.portals: Bridles-pom: pom: 1.0 from / to centre
POM @ dòng 23, cột 11
...
[ERROR] Dự án org.apache.portals. Điều chỉnh: portals-Bridge-common: 2.0 (H: \ path_to_project \ portals-Brid-common-2.0 \ pom.xml) có 1 lỗi
[ERROR] POM cha mẹ không thể phân giải: Không thể chuyển nhân tạo org.apache.portals: cầu-pom: pom: 1.0 từ / đến trung tâm (http://repo1.maven.org/maven2):
Lỗi khi chuyển tệp: repo1.maven.org và 'Parent.relativePath' chỉ sai POM cục bộ @ dòng 23, cột 11: Máy chủ không xác định repo1.maven.org -> [Trợ giúp 2]
...
[ERROR] Để biết thêm thông tin về các lỗi và giải pháp có thể, vui lòng đọc các bài viết sau:
[ERROR] [Trợ giúp 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBu dựngException
[LRI] [Trợ giúp 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

Tôi đã thử một vài thứ, sau khi lướt một chút:

  • Đã thử đặt cha mẹ.relativePath để trống để maven không nghĩ rằng cha mẹ là người địa phương. Đây là theo gợi ý về SO tại Hudson build fail: POM cha mẹ không thể giải quyếttrong diễn đàn nabble này . Điều này không có tác dụng.

  • Tôi cũng đã cố gắng đảm bảo kho lưu trữ được liệt kê rõ ràng trong tệp cài đặt của tôi nhưng điều này cũng không có tác dụng.

  • Sau đó tôi đảm bảo mvn đã buộc phải tra cứu kho lưu trữ, thay vì dựa vào lịch sử của chính nó, như Sarthon đã thảo luận trong blog này . Thật không may, đây cũng không phải là vấn đề.

  • Trong một số tuyệt vọng, sau đó tôi đã xem lại MAVEN_OPTS của mình để đảm bảo rằng tôi đã không phạm lỗi với các cài đặt proxy của mình. Đây là chính xác, mặc dù với giá trị không được trích dẫn:

    đặt MAVEN_OPTS = -Dhttp.proxyhost = myproxy.mycompany.com -Dhttp.proxyPort = 8080 -Xmx256m

  • Vì vậy, cuối cùng, tôi đã chuyển cấu hình proxy vào tệp settings.xml của mình và điều này đã hoạt động:

    <proxies>
      <proxy>
        <id>genproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <!--username>proxyuser</username-->
        <!--password>proxypass</password-->
        <host>myproxy.mycompany.com</host>
        <port>8080</port>
        <nonProxyHosts>*.mycompany.com|127.0.0.1</nonProxyHosts>
      </proxy>
    </proxies>

Thực sự không chắc chắn lý do tại sao MAVEN_OPTS ban đầu của tôi không hoạt động (dấu ngoặc kép?) Trong khi cấu hình settings.xml hoạt động. Tôi muốn đảo ngược sửa chữa và kiểm tra lại từng bước một nhưng đã lãng phí quá nhiều thời gian. Sẽ báo cáo lại khi và khi nào.


Bạn có thực sự chỉ định tên người dùng và mật khẩu trong MAVEN_OPTS không?
bcmoney

1
Tôi không nghĩ rằng tôi đã làm nhưng sau đó tôi không cần cho máy chủ proxy của mình. Như bạn có thể thấy, nó là có thể. Ngoài các vấn đề bảo mật, bạn có thể thử nó. Tôi tập hợp bạn vẫn còn gặp vấn đề khi đã đi xa đến thế này?
wmorrison365

4

Tôi biết đây không thực sự là một câu trả lời cho câu hỏi, nhưng nó có thể đáng để biết cho ai đó đang tìm kiếm bài đăng này. Cũng có thể cài đặt proxy kho lưu trữ Maven như nexus .

Maven của bạn sẽ được định cấu hình để liên hệ với proxy Nexus cục bộ và sau đó Nexus sẽ truy xuất (và lưu trữ) các thành phần. Nó có thể được cấu hình thông qua giao diện web và có hỗ trợ cho (http) proxy).

Đây có thể là một lợi thế, đặc biệt là trong môi trường công ty, vì các vật phẩm có sẵn tại địa phương và có thể được tải xuống nhanh chóng, và bạn không còn phụ thuộc vào kho lưu trữ Maven bên ngoài nữa.

Để liên kết trở lại câu hỏi; với Nexus có một GUI đẹp cho cấu hình proxy và nó chỉ cần được thực hiện ở một nơi chứ không phải cho mọi nhà phát triển.


3

nếu bạn là người mới để thiết lập proxy cho Maven Trong trường hợp của tôi đầu tiên đi và kiểm tra thời tiết Home Folder bạn có .m2thư mục và trong đó cần có một file có tên settings.xmlnếu không tạo ra nó, và dán này và sự thay đổi hostport, sau đó nếu cần thiết thay đổi cácnonProxyHosts

Thư mục chính - C: \ Users \ {Tên người dùng}

<settings>
<proxies>
    <proxy>
        <id>httpproxy</id>
        <active>true</active>
        <protocol>http</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>
<proxy>
        <id>httpsproxy</id>
        <active>true</active>
        <protocol>https</protocol>
        <host>your-proxy-host</host>
        <port>your-proxy-port</port>
        <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>

</proxies>
</settings>

Nếu bất kỳ trường hợp nào điều này không thành công, hãy thực hiện các thay đổi ở vị trí này của Thư mục chính

/conf/settings.xml

Tôi đang sử dụng Eclipse như IDE của tôi
Hy vọng điều này sẽ giúp !!

Lưu ý: Để xóa proxy, chỉ cần di chuyển settings.xmlđến một số nơi khác


Để xóa proxy, chỉ cần di chuyển cài đặt
tệp XML

1

Nếu maven hoạt động thông qua proxy nhưng không phải một số plugin mà nó đang gọi, hãy thử cài đặt JAVA_TOOL_OPTIONScũng như -Dhttp*.proxy*cài đặt.

Nếu bạn đã JAVA_OPTSlàm

export JAVA_TOOL_OPTIONS=$JAVA_OPTS

0

Ngoại trừ các kỹ thuật được đề cập ở trên, với một số nỗ lực, bạn có thể chạy maven thông qua proxy bằng thư viện jproxyloader (có ví dụ trên trang về cách thực hiện việc này: http://jproxyloader.sourceforge.net/ ). Điều này cho phép thiết lập proxy vớ chỉ để tải xuống các tạo phẩm.

Trong giải pháp được đề cập bởi duanni (cài đặt -DsocksProxyhost), có một vấn đề. Nếu bạn có các kiểm tra tích hợp chạy với cơ sở dữ liệu cục bộ (hoặc các kiểm tra khác kết nối với url không qua proxy). Các thử nghiệm này sẽ ngừng hoạt động vì các kết nối đến cơ sở dữ liệu cũng sẽ được chuyển hướng đến proxy. Với sự trợ giúp của jProxyLoader, bạn chỉ có thể thiết lập proxy cho máy chủ nexus. Ngoài ra, nếu bạn muốn, bạn có thể truyền kết nối tới cơ sở dữ liệu thông qua proxy khác.


0

Đôi khi bạn cần thêm các <proxy></proxy>thẻ khác và chỉ định https trong các thẻ giao thức:<protocol>https</protocol>


0

Các bài viết trên đã giúp giải quyết vấn đề của tôi. Ngoài những điều trên tôi đã phải thực hiện các thay đổi sau để làm cho nó hoạt động:

  • Cài đặt mạng JRE của Maven đã sửa đổi (\ jre \ lib \ net.properies) để sử dụng cài đặt proxy hệ thống.

    https.proxyHost=proxy DNS
    https.proxyPort=proxy port
  • Đã bao gồm các cài đặt máy chủ proxy trong settings.xml. Tôi không cung cấp cài đặt tên người dùng và mật khẩu để sử dụng xác thực NTLM.


0

Maven cung cấp một phương thức tích hợp sẵn để thực hiện việc này, thông qua một tệp có tên là settings.xml và điều này đã được đề cập trong các câu trả lời khác. Tuy nhiên, theo thông lệ, đặc biệt là trong Linux, các công cụ dòng lệnh sẽ tự động sử dụng proxy được chỉ định bởi biến môi trườnghttps_proxy .

Để tuân thủ nguyên tắc Đừng lặp lại chính mình (nhằm giúp bạn tránh những sai lầm), thật tuyệt nếu mvncó thể tự động làm việc với điều đó.

Đây là tập lệnh shell thực hiện các chuyển đổi cần thiết:

#! /usr/bin/env bash

function javaproxy {
    ## using "Shell Parameter Expansion"
    request_scheme=$1 ; proxy=$2
    notscheme=$(echo ${proxy#*://}) ## parse
    scheme=$(echo ${proxy%${notscheme}}) ## remove
    scheme=$(echo ${scheme%://}) ## strip
    hostport=$(echo ${proxy#*//*}) ## parse
    host=$(echo ${hostport%:*}) ## parse
    port=$(echo ${hostport#${host}}) ## remove
    port=$(echo ${port#:}) ## strip
    scheme=$(echo ${scheme:-http}) ## default
    host=$(echo ${host:-localhost}) ## default
    port=$(echo ${port:-8080}) ## default
    echo -n " -D${request_scheme}.proxyHost=${host}"
    echo -n " -D${request_scheme}.proxyPort=${port}"
}

JTO=""

if [ $http_proxy ] ; then
    JTO="${JTO}$(javaproxy http ${http_proxy})"
fi

if [ $https_proxy ] ; then
    JTO="${JTO}$(javaproxy https ${https_proxy})"
fi

if [ $no_proxy ] ; then
    JTO="${JTO} -Dhttp.nonProxyHosts=$(echo \"${no_proxy}\"|tr ',' '|')"
fi

   export JAVA_TOOL_OPTIONS=${JTO}
   echo "JAVA_TOOL_OPTIONS=${JAVA_TOOL_OPTIONS}"

   mvn_friendliness_options+=--update-snapshots
   mvn ${mvn_friendliness_options} $@

Bạn có thể đặt tên này là một cái gì đó giống như proxied_mvnvà chạy nó như sau:

$ https_proxy=http://localhost:58080 ./proxied_mvn clean package

Ngoài ra, bạn chỉ có thể di chuyển thiết lập môi trường vào tập lệnh khởi động của mình.

vấn đề

Có nhiều điều có thể sai khi cố gắng định cấu hình Maven để truy cập vào Nexus thông qua proxy. Hy vọng, kịch bản này sẽ giúp với một số vấn đề khó khăn nhất, nhưng những vấn đề khác vẫn còn:

  • Thông tin đăng nhập Nexus có sẵn và chính xác (chỉ khi được yêu cầu)

    Kiểm tra với mvn help:effective-settings

  • Bộ nhớ đệm Maven: "độ phân giải sẽ không được đánh dấu lại"

    mvn clean package --update-snapshots

  • Đầu ra văn bản của Maven - bạn phải xem xét kỹ đầu ra để đảm bảo các thông báo lỗi không khác biệt tinh tế giữa các lần chạy

  • Các phiên bản cũ hơn của Java có thể yêu cầu _JAVA_OPTIONSthay vì JAVA_TOOL_OPTIONS.

kết thúc

Có nhiều loại Proxy . Tương ứng, có nhiều hơn một cách mà câu hỏi này đã được diễn giải - góp phần vào số lượng lớn các câu trả lời khác nhau ở đây.

Tôi đã giải quyết rõ ràng trường hợp máy chủ proxy web (HTTP / HTTPS) chuyển tiếp , được sử dụng để truy cập internet từ trong mạng công ty (đối với một số công ty). Điều này có thể khác biệt đáng chú ý với proxy SOCKS , cũng đã được giải quyết trong một số câu trả lời ở đây.

Nhân tiện, vì nó sử dụng JAVA_TOOL_OPTIONS, các giải pháp này cũng có thể được áp dụng để chạy các ứng dụng Java khác của bạn bên trong một proxy .


Gợi ý chia tay ... Ví dụ của tôi ở trên sử dụng http://localhost:58080. Điều này là do tôi đã thiết lập chuyển tiếp cổng từ CLIENT_PROXY=localhost:58080proxy của tôi sang proxy mạng thực tế bằng cách sử dụng WSL trên máy khách truy cập từ xa của tôi để chạy:

ssh $PROXY_CLIENT -R $CLIENT_PROXY:$SERVER_PROXY
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.