Bagaimana cara menggunakan Maven melalui proxy?

130

Saya ingin berbagi pengalaman menggunakan maven melalui proxy.

Anda kemungkinan besar akan menghadapi pengecualian dan pesan seperti:

metadata repositori untuk: 'org.apache.maven.plugins' tidak dapat diambil dari 
repositori: pusat karena kesalahan: Kesalahan mentransfer file: Koneksi ditolak: terhubung

atau

[PERINGATAN] Gagal mengambil deskriptor plugin untuk org.apache.maven.plugins: maven-clean-
plugin: 2.5: Plugin org.apache.maven.plugins: maven-clean-plugin: 2.5 atau salah satunya 
dependensi tidak dapat diselesaikan: Gagal membaca keterangan artefak untuk 
org.apache.maven.plugins: maven-clean-plugin: jar: 2.5

Bagaimana cara mengkonfigurasi Maven untuk menggunakan server proxy?

Bogdan
sumber
(Siapa saja) Pikiran mengulangi ini menjadi pertanyaan yang sebenarnya (seperti: Bagaimana saya menggunakan Maven melalui proxy?)? Anda kemudian dapat memposting tubuh pertanyaan Anda sebagai jawaban, untuk menjadi lebih sejalan dengan format StackOverflow ..
Tim
Saya telah mengulanginya untuk Anda Bogdan, silakan posting konten asli Anda sebagai jawaban jika Anda mau
Penjual Kaya
sepertinya kami diedit pada saat yang sama
Penjual Kaya

Jawaban:

145

Untuk detail pengaturan proxy untuk Maven, lihat panduan mini .

Pada dasarnya Anda perlu memastikan bagian proksi di pengaturan global ( [maven install]/conf/settings.xml), atau pengaturan pengguna ( ${user.home}/.m2/settings.xml) dikonfigurasikan dengan benar. Lebih baik melakukan ini di pengaturan pengguna Anda untuk menghindari menyimpan kata sandi dalam teks biasa di lokasi publik.

Maven 2.1 memperkenalkan enkripsi kata sandi , tetapi saya tidak punya waktu untuk memeriksa apakah enkripsi tersebut berlaku untuk pengaturan proksi serta kata sandi penyimpanan (tidak melihat mengapa hal itu tidak terjadi).

Untuk info, ada konfigurasi proxy yang dikomentari di pengaturan Anda.xml dan instruksi tentang cara memodifikasinya.

Dari mini-guide, pengaturan Anda akan terlihat seperti ini:

<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>
Penjual Kaya
sumber
Terima kasih, tetapi posting ini bukan tip untuk orang lain daripada pertanyaan. Saya sudah menyelesaikan masalah ini, tetapi menghabiskan terlalu banyak waktu untuk hal-hal yang tidak jelas. Saya memposting ini agar bermanfaat bagi seseorang.
Bogdan
7
tidak dapat menemukan file setting.xml di direktori m2. ada yang tahu kenapa? @ Penjual Kaya
Ariox66
5
Anda harus meletakkannya di sana. Anda dapat menemukan contoh settings.xml dari maven_home, lokasi tempat Anda membuka ritsleting binari maven.
Ravi
Dan jika proxy tidak memerlukan otentikasi, elemen <username>dan <password>harus dihapus (dan tidak diberi konten kosong). Saya butuh waktu beberapa saat untuk mencari tahu.
dmcontador
50

Bagaimana cara menggunakan proxy kaus kaki?

Siapkan terowongan SSH ke server di suatu tempat:

ssh -D $PORT $USER@$SERVER

Linux (bash):

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

Windows:

set MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=$PORT"
gs1
sumber
2
Menggunakan proxy kaus kaki melalui MAVEN_OPTSadalah satu-satunya cara saya bisa mendapatkan Maven untuk mengunduh melalui HTTPS. Menggunakan proxy HTTP atau HTTPS, baik melalui MAVEN_OPTSatau settings.xml, menghasilkanorg.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ă
Untuk httpproxy:export MAVEN_OPTS="-DproxyHost=127.0.0.1 -DproxyPort=$PORT"
Omid
Luar biasa terima kasih. Jika Anda ingin menggunakan opsi-opsi itu hanya sekali untuk satu perintah tunggal, Anda dapat mengetik: Perintah MAVEN_OPTS="-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=1080" mvn clean installselanjutnya mvndalam sesi yang sama akan tanpa proxy.
Eric Duminil
29

Saya juga memiliki masalah ini, dan saya menyelesaikannya dengan mengedit settings.xmlfile di .m2folder saya . Saya settings.xmlseperti ini sekarang:

<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>
pedrobisp
sumber
1
Ini bukan mengunduh file jar dalam kasus saya. Saya sudah mencoba semuanya
Faizan Mubasher
28

Perhatikan juga bahwa beberapa plugin (sumber daya jarak jauh muncul di pikiran) menggunakan pustaka yang sangat lama yang hanya menerima konfigurasi proxy melalui MAVEN_OPTS;

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

Anda mungkin terjebak pada auth untuk yang ini.

krosenvold
sumber
Tidak bekerja untuk saya di Ubuntu 14.04 dengan maven 3.0.5 dari repositori Ubuntu. Mengkonfigurasi proxy di file settings.xml berfungsi.
Mihai Capotă
1
Bekerja untuk saya di Ubuntu 14.04 dengan Maven 3.0.4
rmv
Contoh dari kebutuhan untuk mengatur MAVEN_OPTS dengan cara ini adalah membangun Maven dari sumber menggunakan Maven. Tanpa MAVEN_OPTS, ia gagal mengunduh LICENSE-2.0, meskipun mengunduh banyak JAR.
Permaquid
@ krosenvold terima kasih, solusi ini berhasil untuk saya. Saya sudah mengatur proxy di settings.xml tetapi ada plugin cxf yang ingin menghasilkan kode dari wsdl yang gagal. Ini memperbaiki masalah saya.
Vishal Vijayan
23

Untuk mengatur Proxy Maven :

Edit sesi proksi di file ~ / .m2 / settings.xml Anda . Jika Anda tidak dapat menemukan file, buat satu.

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

atau

Edit sesi proksi di {M2_HOME} /conf/settings.xml Anda

Semoga Membantu .. :)

Sarat Chandra
sumber
15

Itu kemungkinan besar disebabkan oleh 2 masalah:

  1. Anda perlu menambahkan konfigurasi proxy ke settings.xml Anda. Berikut trik di bidang nama pengguna Anda. Pastikan itu terlihat seperti domain \ nama pengguna. Mengatur domain di sana dan meletakkan garis miring yang tepat ini penting '\'. Anda mungkin ingin menggunakan tag <! [CDATA []]> jika kata sandi Anda mengandung karakter yang tidak ramah xml.
  2. Saya perhatikan maven 2.2.0 tidak bekerja terkadang melalui proxy sama sekali, di mana 2.2.1 bekerja dengan baik.

Jika beberapa dari mereka dihilangkan - pakar dapat gagal dengan pesan kesalahan acak.

Hanya berharap saya telah menyelamatkan seseorang dari googling sekitar masalah ini selama 6 jam, seperti yang saya lakukan.

Bogdan
sumber
Apakah Anda menggunakan proksi NTLM? dari mini guide: "Harap perhatikan bahwa [c] saat ini proksi NTLM tidak didukung karena belum diuji. Anda mungkin dapat menggunakan properti sistem yang relevan pada JDK 1.4+ untuk membuat ini bekerja."
Penjual Kaya
Tidak yakin tentang ini. Itu adalah proksi perusahaan yang sebenarnya ditempatkan 600 mil dari saya dan tidak ada seorang pun dari administrasi sistem yang bekerja akhir pekan ini. Jadi tidak bisa bertanya kepada siapa pun sekarang. Akan menarik untuk mencari tahu. Saya tahu ini mendukung http, kaus kaki dan protokol lainnya. Mungkin itu NTML juga.
Bogdan
14

Hanya untuk menambah pengalaman saya sendiri dengan ini: proxy perusahaan saya adalah http://webproxy.intra.companyname.com:3128. Agar pakar bekerja melalui proxy ini, pengaturannya harus persis seperti ini

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

Tidak seperti beberapa file konfigurasi-proxy lainnya, di protocolsini dijelaskan cara menyambung ke server proxy, bukan jenis protokol mana yang harus diproksi. Bagian httpdari target harus dipisahkan dari nama host, jika tidak maka tidak akan berfungsi.

Andy Jones
sumber
Pada saat ini saya hanya mencoba yang sebaliknya. Protokol di sini adalah untuk menggambarkan protokol mana yang harus menggunakan proxy ini. Saya baru saja berhasil mengkonfigurasi proxy protokol https yang terhubung ke proxy http dengan menggunakan <protocol> https </protocol>
Olivier Amblet
Terima kasih! Ini berhasil untuk saya! Saya memiliki "http: //" yang sudah ditangguhkan dan itu akan gagal
Jesse McCall
11

Terima kasih @krosenvold.

Jika perubahan file pengaturan tidak berfungsi, coba ini di command prompt memiliki file POM.

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

Ini membantu saya segera setelah perubahan kata sandi.

pengguna1189363
sumber
11

Saya menjalankan cntlmlocaly, dikonfigurasi dengan NTLMv2hash kata sandi untuk mengotentikasi dengan proksi perusahaan, dan menggunakan

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

untuk menggunakan proxy itu dari maven. Tentu saja proxy yang Anda gunakan harus mendukung cntlm/ NTLMv2.

Peter Hofman
sumber
`atur MAVEN_OPTS = -DproxyHost = 127.0.0.1 -DproxyPort = 3128` untuk windows
qxo
PowerShell dapat mengatur variabel lingkungan sistem: [Environment]::SetEnvironmentVariable("MAVEN_OPTS", "-DproxyHost=127.0.0.1 -DproxyPort=3128", "Machine")
Boggin
6

Dan untuk menambah topik ini, inilah pengalaman saya di bawah ini ... Benar-benar aneh dan memakan waktu jadi saya pikir itu layak ditambahkan.

Saya memiliki masalah serupa yang mencoba membangun portlet-bridge di Windows, mendapatkan kesalahan berikut:

Mengunduh: http://repo1.maven.org/maven2/org/apache/portals/bridges-pom/1.0/bridges-pom-1.0.pom
[DEBUG] Membaca file pelacakan resolusi C: \ Documents and Settings \ myuser \ .m2 \ repository \ org \ apache \ portals \ bridges-pom \ 1.0 \ bridges-pom-1.0.pom.lastUpdated
[DEBUG] Menulis file pelacakan resolusi C: \ Documents and Settings \ myuser \ .m2 \ repository \ org \ apache \ portals \ bridges-pom \ 1.0 \ bridges-pom-1.0.pom.lastUpdated
[GALAT] Build tidak dapat membaca 1 proyek -> [Bantuan 1]
org.apache.maven.project.ProjectBuildingException: Beberapa masalah muncul saat memproses POM:
[FATAL] POM induk yang tidak dapat diatasi: Tidak dapat mentransfer artefak
org.apache.portals: bridges-pom: pom: 1.0 dari / ke pusat (http://repo1.maven.org/maven2): Kesalahan saat mentransfer file: repo1.maven.org dan poin 'parent.relativePath' di lokal salah
POM @ baris 23, kolom 11
...
[KESALAHAN] Proyek org.apache.portals.bridges: portals-bridges-common: 2.0 (H: \ path_to_project \ portals-bridges-common-2.0 \ pom.xml) memiliki 1 kesalahan
[KESALAHAN] POM induk yang tidak dapat diatasi: Tidak dapat mentransfer artifact org.apache.portals: bridges-pom: pom: 1.0 dari / ke pusat (http://repo1.maven.org/maven2):
Kesalahan saat mentransfer file: poin repo1.maven.org dan 'parent.relativePath' di POM @ line 23 lokal yang salah, kolom 11: Host tidak dikenal repo1.maven.org -> [Help 2]
...
[GALAT] Untuk informasi lebih lanjut tentang kesalahan dan kemungkinan solusi, silakan baca artikel berikut:
[GALAT] [Bantuan 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException
[GALAT] [Bantuan 2] http://cwiki.apache.org/confluence/display/MAVEN/UnresolvableModelException

Saya mencoba beberapa hal, mengikuti sedikit selancar:

  • Mencoba mengatur parent. RelativePath sebagai kosong sehingga maven tidak berpikir orangtua adalah lokal. Ini sesuai saran pada SO di Hudson build fail: POM induk yang tidak dapat diatasi dan dalam forum ini . Ini tidak berpengaruh.

  • Saya juga mencoba memastikan repositori terdaftar secara eksplisit di settings.xml saya tetapi ini tidak berpengaruh baik.

  • Saya kemudian memastikan mvn terpaksa mencari repositori, daripada mengandalkan sejarahnya sendiri, seperti yang dibahas dalam blog ini oleh Sarthon . Sayangnya, ini bukan masalah juga.

  • Dalam beberapa keputusasaan, saya kemudian mengunjungi kembali MAVEN_OPTS saya untuk memastikan saya tidak melanggar pengaturan proxy saya. Ini benar, meskipun dengan nilai yang tidak dikutip:

    atur MAVEN_OPTS = -Dhttp.proxyHost = myproxy.mycompany.com -Dhttp.proxyPort = 8080 -Xmx256m

  • Jadi, akhirnya, saya memindahkan konfigurasi proksi ke pengaturan saya.xml dan ini berhasil:

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

Benar-benar tidak yakin mengapa MAVEN_OPTS asli saya tidak berfungsi (tanda kutip?) Sementara konfigurasi settings.xml berhasil. Saya ingin membalikkan perbaikan dan memeriksa setiap langkah lagi tetapi telah membuang banyak waktu. Akan melaporkan kembali kapan dan kapan.

wmorrison365
sumber
Apakah Anda benar-benar menentukan nama pengguna dan kata sandi di MAVEN_OPTS juga?
bcmoney
1
Saya rasa saya tidak melakukannya tetapi kemudian saya tidak perlu untuk server proxy saya. Seperti yang Anda lihat, itu mungkin. Terlepas dari masalah keamanan, Anda bisa mencobanya. Saya kira Anda masih mengalami masalah sejauh ini?
wmorrison365
4

Saya tahu ini bukan jawaban untuk pertanyaan itu, tetapi mungkin perlu diketahui oleh seseorang yang mencari posting ini. Dimungkinkan juga untuk menginstal proxy repositori Maven seperti nexus .

Pakar Anda akan dikonfigurasi untuk menghubungi proxy Nexus lokal, dan Nexus kemudian akan mengambil (dan cache) artefak. Ini dapat dikonfigurasi melalui antarmuka web dan memiliki dukungan untuk (http) proksi).

Ini bisa menjadi keuntungan, terutama di lingkungan perusahaan, karena artefak tersedia secara lokal dan dapat diunduh dengan cepat, dan Anda tidak lagi bergantung pada ketersediaan repositori Maven eksternal lagi.

Untuk menghubungkan kembali ke pertanyaan; dengan Nexus ada GUI yang bagus untuk konfigurasi proxy, dan itu harus dilakukan di satu tempat saja, dan tidak untuk setiap pengembang.

ekstraneon
sumber
3

jika Anda baru ke setup proxy untuk Maven Dalam kasus saya pertama pergi dan periksa cuaca Home Folder Anda ada .m2folder dan di dalamnya harus ada file bernama settings.xmljika tidak membuatnya, dan tempel ini dan ubah hostdan port, kemudian jika perlu ubahnonProxyHosts

Home Folder - C: \ Users \ {UserName}

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

Jika ada kasus ini tidak berhasil pergi dan lakukan perubahan di lokasi Home Folder ini

/conf/settings.xml

Saya menggunakan Eclipse sebagai IDE
Harapan saya ini akan membantu !!

Catatan: Untuk menghapus proxy cukup pindah settings.xmlke tempat lain

Akitha_MJ
sumber
Untuk menghapus proxy, cukup pindahkan pengaturan.xml ke tempat lain
Akitha_MJ
1

Jika pakar bekerja melalui proksi tetapi tidak beberapa plugin yang diminta, coba pengaturan JAVA_TOOL_OPTIONSjuga dengan -Dhttp*.proxy*pengaturan.

Jika Anda baru JAVA_OPTSsaja melakukannya

export JAVA_TOOL_OPTIONS=$JAVA_OPTS
auselen
sumber
0

Kecuali untuk teknik yang disebutkan di atas, dengan beberapa upaya, Anda dapat menjalankan maven melalui proxy menggunakan pustaka jproxyloader (ada contoh di halaman bagaimana melakukan ini: http://jproxyloader.sourceforge.net/ ). Ini memungkinkan pengaturan proxy kaus kaki hanya untuk mengunduh artefak.

Dalam solusi yang disebutkan oleh duanni (pengaturan -DsocksProxyHost) ada satu masalah. Jika Anda memiliki tes integrasi yang berjalan terhadap basis data lokal (atau tes lain yang terhubung ke url yang tidak boleh melalui proxy). Tes ini akan berhenti berfungsi karena koneksi ke basis data juga akan diarahkan ke proksi. Dengan bantuan jProxyLoader Anda dapat mengatur proxy hanya untuk host nexus. Selain itu jika Anda mau, Anda bisa meneruskan koneksi ke database melalui proxy lain.

walkeros
sumber
0

Beberapa kali Anda perlu menambahkan <proxy></proxy>tag lain , dan menentukan https di tag protokol:<protocol>https</protocol>

Pepe
sumber
0

Posting di atas membantu menyelesaikan masalah saya. Selain hal di atas, saya harus membuat perubahan berikut untuk membuatnya berfungsi:

  • Pengaturan JRE net Maven yang dimodifikasi (\ jre \ lib \ net.properties) untuk menggunakan pengaturan proxy sistem.

    https.proxyHost=proxy DNS
    https.proxyPort=proxy port
  • Termasuk pengaturan server proxy di settings.xml. Saya tidak memberikan pengaturan nama pengguna dan kata sandi untuk menggunakan otentikasi NTLM.

siachen345
sumber
0

Maven menyediakan metode bawaan untuk melakukan ini, melalui file bernama settings.xml , dan ini telah dibahas dalam jawaban lain. Namun, itu adalah kebiasaan, terutama di Linux, untuk alat baris perintah untuk secara otomatis menggunakan proxy yang ditentukan oleh variabel lingkunganhttps_proxy .

Untuk mengikuti Do tidak mengulangi diri prinsip (yang dimaksudkan untuk membantu Anda menghindari kesalahan), akan menyenangkan jika mvnbisa secara otomatis bekerja dengan itu juga.

Berikut ini adalah skrip shell yang membuat konversi yang diperlukan:

#! /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} $@

Anda mungkin memberi nama ini sesuatu seperti proxied_mvndan menjalankannya sebagai:

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

Atau, Anda bisa memindahkan pengaturan lingkungan ke skrip startup Anda.

Gotchas

Ada banyak hal yang bisa salah ketika mencoba mengkonfigurasi Maven untuk akses ke Nexus melalui proxy. Semoga skrip ini akan membantu dengan beberapa masalah yang paling rumit, tetapi yang lain tetap:

  • Kredensial Nexus tersedia dan benar (hanya jika diperlukan)

    Periksa dengan mvn help:effective-settings

  • Singgahan Maven: "resolusi tidak akan dipasang kembali"

    mvn clean package --update-snapshots

  • Maven wall-of-text output - Anda harus melihat lebih dekat pada output untuk memastikan pesan kesalahan tidak sedikit berbeda di antara proses

  • Versi Java yang lebih lama mungkin membutuhkan _JAVA_OPTIONSalih-alih JAVA_TOOL_OPTIONS.

Epilog

Ada lebih dari satu jenis Proksi . Sejalan dengan itu, ada lebih dari satu cara pertanyaan ini ditafsirkan - berkontribusi pada sejumlah besar jawaban yang berbeda di sini.

Saya telah secara eksplisit membahas kasus server proxy web (HTTP maju / HTTPS) , yang digunakan untuk mengakses internet dari dalam jaringan perusahaan (untuk beberapa perusahaan). Ini mungkin berbeda dari proxy SOCKS , yang juga telah dibahas dalam beberapa jawaban di sini.

Oh, omong-omong, sejak digunakan JAVA_TOOL_OPTIONS, solusi ini dapat diterapkan untuk menjalankan aplikasi Java Anda yang lain di dalam proxy juga.


Petunjuk perpisahan ... Contoh saya di atas menggunakan http://localhost:58080. Ini karena saya telah mengatur port-forwarding dari saya CLIENT_PROXY=localhost:58080ke proxy jaringan yang sebenarnya dengan menggunakan WSL pada klien akses jarak jauh saya untuk menjalankan:

ssh $PROXY_CLIENT -R $CLIENT_PROXY:$SERVER_PROXY
Brent Bradburn
sumber