Maven và Gradle proxy: Cấu hình settings.xml và gradle.properties
Maven Gradle proxy là cách cấu hình để hai công cụ build phổ biến nhất của Java và Android tải thư viện phụ thuộc qua máy chủ proxy. Lập trình viên làm trong mạng công ty, ngân hàng, cơ quan nhà nước thường gặp cảnh build thất bại ngay bước tải phụ thuộc vì máy không ra Internet trực tiếp được. Bài này ProxyVN hướng dẫn cấu hình proxy cho Maven bằng tệp settings.xml, mã hoá mật khẩu proxy, cấu hình Gradle bằng gradle.properties, đồng bộ với Android Studio, viết danh sách ngoại lệ và xử lý các lỗi tải phụ thuộc thường gặp. Xem thêm dịch vụ tại ProxyVN.
Tổng quan về Maven Gradle proxy
Maven và Gradle đều tải thư viện từ kho từ xa, phổ biến nhất là Maven Central, Google Maven cho Android và kho của Gradle Plugin Portal. Mỗi lần build trên máy mới hoặc khi thêm thư viện mới, công cụ gửi hàng chục tới hàng trăm yêu cầu HTTPS tới các kho này. Trong mạng bắt buộc đi qua proxy, nếu công cụ build không biết proxy, mọi yêu cầu đều hết thời gian chờ.
Điểm cần nhớ đầu tiên: cả Maven và Gradle đều chạy trên máy ảo Java, nhưng không tự đọc proxy của hệ điều hành hay biến môi trường HTTP_PROXY. Mỗi công cụ có chỗ cấu hình riêng. Cách đặt proxy trong mã Java như System.setProperty hay ProxySelector có trong bài Java proxy, bài này chỉ nói về công cụ build.

Đường đi của phụ thuộc khi build
Khi nào cần cấu hình Maven Gradle proxy
- Mạng công ty bắt buộc proxy: máy lập trình viên không ra Internet trực tiếp, build lần đầu báo lỗi tải phụ thuộc.
- Máy chủ CI trong mạng nội bộ: Jenkins, GitLab Runner chạy build sau tường lửa.
- Kho bị chặn theo vùng: một số kho hoặc CDN chậm, lỗi theo vùng, cần đi qua IP khác.
- Kiểm thử build trong môi trường giống khách hàng: khách hàng có proxy, cần tái hiện lỗi.
Maven và Gradle đọc proxy từ đâu
Công cụ |
Nơi cấu hình chính |
Phạm vi |
|---|---|---|
Maven |
~/.m2/settings.xml, thẻ proxies |
Toàn bộ dự án trên máy |
Maven |
Tham số -D khi chạy lệnh |
Một lần chạy |
Gradle |
~/.gradle/gradle.properties |
Toàn bộ dự án trên máy |
Gradle |
gradle.properties trong thư mục dự án |
Một dự án |
Gradle Wrapper |
Như Gradle, dùng khi tải bản phân phối |
Bước tải Gradle |
Cấu hình Maven Gradle proxy: phần Maven với settings.xml
Maven đọc proxy từ tệp settings.xml của người dùng, nằm trong thư mục .m2 ở thư mục cá nhân. Trên Windows là C:\Users\ten\.m2\settings.xml, trên Linux, macOS là ~/.m2/settings.xml. Nếu chưa có, tạo tệp mới. Hướng dẫn gốc nằm trong trang Configuring a proxy của Apache Maven.

Khối proxies trong settings.xml
Khối proxies cơ bản
<settings>
<proxies>
<proxy>
<id>proxy-cong-ty</id>
<active>true</active>
<protocol>http</protocol>
<host>10.0.0.5</host>
<port>8080</port>
<nonProxyHosts>localhost|127.0.0.1|*.noibo.local</nonProxyHosts>
</proxy>
</proxies>
</settings>
Thẻ protocol là http cho hầu hết proxy, kể cả khi kho dùng HTTPS, vì Maven gửi lệnh CONNECT qua proxy HTTP để mở đường hầm. Thẻ active đặt true để bật. Có thể khai báo nhiều proxy, Maven dùng proxy đầu tiên có active là true.
Proxy có tài khoản mật khẩu
Thêm hai thẻ username và password vào trong khối proxy:
<username>user01</username>
<password>matkhau</password>
Proxy trả về mã 407 khi thiếu hoặc sai tài khoản. Cơ chế xác thực proxy có trong bài sửa lỗi 407 Proxy Authentication Required.
Viết nonProxyHosts đúng cách
Các tên máy cách nhau bằng dấu gạch đứng, hỗ trợ dấu sao ở đầu. Kho nội bộ như Nexus, Artifactory trong mạng công ty nên nằm trong danh sách này để Maven gọi thẳng. Lưu ý dấu gạch đứng khác với dấu phẩy của biến NO_PROXY, viết nhầm là lỗi rất hay gặp. Quy tắc chung của danh sách ngoại lệ có trong bài NO_PROXY là gì.
Truyền proxy bằng tham số dòng lệnh
Khi chỉ cần proxy cho một lần chạy, ví dụ trên máy CI tạm thời:
mvn -Dhttps.proxyHost=10.0.0.5 -Dhttps.proxyPort=8080 clean install
Cách này dùng thuộc tính chuẩn của Java. Nó hoạt động với phần lớn phiên bản Maven, nhưng settings.xml vẫn là cách được khuyến nghị vì rõ ràng hơn và hỗ trợ xác thực.
Mã hoá mật khẩu Maven Gradle proxy
Mật khẩu proxy viết thường trong settings.xml dễ lộ khi chia sẻ máy hay sao chép tệp. Maven có cơ chế mã hoá mật khẩu, mô tả trong trang Password Encryption.
Tạo mật khẩu chính
Chạy lệnh mvn --encrypt-master-password, nhập mật khẩu chính. Maven trả về chuỗi mã hoá trong dấu ngoặc nhọn. Lưu chuỗi này vào tệp settings-security.xml trong thư mục .m2, thẻ master.
Mã hoá mật khẩu proxy
Chạy mvn --encrypt-password, nhập mật khẩu proxy. Chuỗi trả về, kèm dấu ngoặc nhọn, dán vào thẻ password trong settings.xml. Khi build, Maven tự giải mã bằng mật khẩu chính.
Giới hạn của cơ chế này
Mật khẩu chính nằm trên cùng máy, nên đây là cách che mật khẩu khỏi người nhìn lướt chứ không phải bảo mật mạnh. Có thể để settings-security.xml trên thẻ nhớ rời và dùng thẻ relocation để trỏ tới. Với Maven 4, cơ chế mã hoá được làm lại, nên đọc tài liệu đúng phiên bản đang dùng.
Gradle thì sao
Gradle không có cơ chế mã hoá tích hợp cho proxy. Thông lệ là để mật khẩu trong gradle.properties ở thư mục cá nhân, không đưa lên kho mã, hoặc truyền qua biến môi trường trên máy CI.
Cấu hình Maven Gradle proxy: phần Gradle với gradle.properties
Gradle đọc proxy từ các thuộc tính hệ thống Java, khai báo trong tệp gradle.properties với tiền tố systemProp. Tài liệu gốc có ở trang Build Environment của Gradle, phần Accessing the web through a proxy.

Proxy trong gradle.properties
Khai báo proxy HTTP và HTTPS
systemProp.http.proxyHost=10.0.0.5
systemProp.http.proxyPort=8080
systemProp.http.nonProxyHosts=localhost|127.0.0.1|*.noibo.local
systemProp.https.proxyHost=10.0.0.5
systemProp.https.proxyPort=8080
systemProp.https.nonProxyHosts=localhost|127.0.0.1|*.noibo.local
Phải khai báo cả nhóm http và nhóm https. Hầu hết kho hiện nay dùng HTTPS, chỉ khai nhóm http thì Gradle vẫn đi thẳng và lỗi.
Thêm tài khoản mật khẩu
systemProp.https.proxyUser=user01
systemProp.https.proxyPassword=matkhau
systemProp.http.proxyUser=user01
systemProp.http.proxyPassword=matkhau
Với proxy dùng NTLM trong mạng Windows, Gradle hỗ trợ thêm thuộc tính http.auth.ntlm.domain để khai báo tên miền.
Đặt ở thư mục cá nhân hay thư mục dự án
Tệp gradle.properties trong thư mục .gradle cá nhân áp dụng cho mọi dự án trên máy và không bị đưa lên kho mã. Tệp gradle.properties trong thư mục dự án thì đi theo dự án, ai kéo mã về cũng nhận. Proxy là cấu hình của máy, không phải của dự án, nên đặt ở thư mục cá nhân. Nếu cả hai nơi cùng khai báo, giá trị ở thư mục cá nhân được ưu tiên.
Truyền bằng dòng lệnh
./gradlew build -Dhttps.proxyHost=10.0.0.5 -Dhttps.proxyPort=8080
Tham số -D chỉ áp dụng cho lần chạy đó, tiện khi thử nghiệm.
Gradle Wrapper và Maven Gradle proxy
Dự án dùng Gradle Wrapper sẽ tự tải bản phân phối Gradle ở lần chạy đầu tiên. Bước tải này cũng cần proxy.
Wrapper đọc cùng tệp gradle.properties
Wrapper đọc gradle.properties ở thư mục cá nhân và thư mục dự án, dùng các thuộc tính systemProp như trên để tải tệp zip của Gradle. Khai đúng proxy ở thư mục cá nhân là đủ cho cả wrapper và build.
Khi tải bản phân phối bị chặn
Một số proxy công ty chặn tải tệp zip lớn hoặc chặn tên miền services.gradle.org. Cách xử lý là xin IT mở tên miền, hoặc đặt distributionUrl trong gradle-wrapper.properties trỏ tới bản sao trong kho nội bộ.
Maven Wrapper
Maven Wrapper hoạt động tương tự, tải bản phân phối Maven ở lần chạy đầu. Nó dùng cấu hình proxy trong settings.xml hoặc thuộc tính Java truyền qua biến MAVEN_OPTS.
Android Studio và Maven Gradle proxy
Android Studio dùng Gradle để build, nhưng bản thân trình soạn thảo có mục cài proxy riêng. Hai nơi cần khớp nhau.
Cài proxy trong Android Studio
Vào Settings, chọn Appearance & Behavior, System Settings, HTTP Proxy. Chọn Manual proxy configuration, nhập máy chủ, cổng, tài khoản. Bấm Check connection để thử. Hướng dẫn chung có trong trang Configure Android Studio của Android Developers.
Hộp thoại đồng bộ sang Gradle
Khi lưu proxy, Android Studio thường hỏi có muốn ghi cấu hình này vào gradle.properties của Gradle không. Chọn đồng ý để Gradle dùng cùng proxy. Nếu bỏ qua, trình soạn thảo ra mạng được nhưng build vẫn lỗi.
SDK Manager
SDK Manager tải nền tảng Android, công cụ build qua mạng. Nó dùng proxy cài trong Android Studio. Nếu SDK Manager báo lỗi tải, kiểm tra lại mục HTTP Proxy trước.
Máy ảo Android
Máy ảo Android chạy ứng dụng có cấu hình proxy riêng, không liên quan tới proxy của Gradle. Cách cài proxy cho máy ảo có trong bài cài proxy cho Genymotion và bài cài proxy cho Android.
Kho nội bộ thay cho Maven Gradle proxy
Nhiều công ty không cho từng máy đi qua proxy ra Internet mà dựng kho trung gian nội bộ.
Kho trung gian hoạt động thế nào
Nexus Repository hoặc Artifactory đứng trong mạng nội bộ, chỉ máy chủ này ra Internet qua proxy. Máy lập trình viên gọi kho nội bộ, kho nội bộ tải từ Maven Central lần đầu rồi lưu lại. Lần sau ai cần thư viện đó đều lấy từ bộ nhớ đệm nội bộ, nhanh hơn nhiều.
Cấu hình mirror trong Maven
Trong settings.xml, khối mirrors với mirrorOf là dấu sao chuyển mọi yêu cầu sang kho nội bộ. Kho nội bộ nằm trong nonProxyHosts nên đi thẳng.
Cấu hình kho nội bộ trong Gradle
Trong settings.gradle, khối dependencyResolutionManagement khai báo repositories trỏ tới địa chỉ kho nội bộ. Cũng có thể dùng init script ở thư mục cá nhân để áp cho mọi dự án mà không sửa mã dự án.
Lợi ích
Không phải cấu hình proxy trên từng máy, build nhanh hơn, có kiểm soát thư viện được phép dùng. Đây là mô hình giống proxy caching áp dụng riêng cho thư viện phần mềm.
Lỗi Maven Gradle proxy thường gặp và cách sửa

Sửa lỗi tải phụ thuộc sau proxy
Thông báo |
Nguyên nhân khả dĩ |
Cách sửa |
|---|---|---|
Could not transfer artifact ... Connect timed out |
Chưa cấu hình proxy, đi thẳng bị chặn |
Thêm khối proxies hoặc systemProp |
407 Proxy Authentication Required |
Thiếu, sai tài khoản proxy |
Thêm username, password, kiểm tra ký tự đặc biệt |
PKIX path building failed |
Proxy công ty giải mã HTTPS bằng chứng chỉ riêng |
Thêm chứng chỉ gốc công ty vào truststore của JDK |
Could not resolve all dependencies, Gradle |
Chỉ khai nhóm http, thiếu https |
Khai cả systemProp.https |
Kho nội bộ không gọi được |
Kho nội bộ bị gửi qua proxy |
Thêm vào nonProxyHosts |
Lỗi chỉ trên máy CI |
Máy CI chạy dưới tài khoản khác, không có tệp cấu hình |
Đặt tệp cấu hình cho đúng tài khoản dịch vụ |
Tải gradle zip thất bại |
Proxy chặn tên miền bản phân phối |
Mở tên miền hoặc dùng bản sao nội bộ |
Lỗi chứng chỉ PKIX chi tiết
Proxy công ty có chức năng kiểm tra HTTPS sẽ thay chứng chỉ của kho bằng chứng chỉ do công ty cấp. JDK không tin chứng chỉ đó nên báo PKIX path building failed. Cách đúng là xin IT tệp chứng chỉ gốc rồi dùng lệnh keytool -importcert thêm vào tệp cacerts của JDK mà Maven, Gradle đang dùng. Không tắt kiểm tra chứng chỉ, vì như vậy mọi kết nối đều có thể bị kẻ xấu xen giữa, kiểu tấn công được giải thích trong bài tấn công MITM.
Mật khẩu có ký tự đặc biệt
Trong settings.xml, ký tự như dấu và, dấu nhỏ hơn phải viết dạng thực thể XML. Trong gradle.properties, dấu gạch chéo ngược cần nhân đôi. Mật khẩu chứa ký tự đặc biệt là nguyên nhân hay gặp của lỗi 407 dù đã nhập đúng.
Xem Maven đang dùng proxy nào
Lệnh mvn help:effective-settings in ra cấu hình đã gộp, gồm cả khối proxies đang có hiệu lực. Chạy thêm tham số -X để xem nhật ký chi tiết, trong đó có dòng cho biết kết nối đi qua proxy nào.
Xem Gradle đang dùng proxy nào
Chạy build với tham số --info hoặc --debug. Nhật ký cho thấy địa chỉ đang tải và lỗi cụ thể. Có thể in System.getProperty của https.proxyHost trong một task nhỏ để chắc thuộc tính đã được nạp.
Maven Gradle proxy trên máy CI
Máy chủ tích hợp liên tục cần cấu hình riêng, vì nó không dùng tệp trong thư mục cá nhân của lập trình viên.
Jenkins
Jenkins có mục cấu hình proxy trong phần quản lý plugin, nhưng mục này chỉ dùng để tải plugin. Build Maven, Gradle cần tệp settings.xml và gradle.properties trong thư mục cá nhân của tài khoản chạy Jenkins, hoặc dùng plugin Config File Provider để cấp settings.xml cho từng job.
GitLab CI, GitHub Actions tự lưu trữ
Runner tự lưu trữ trong mạng công ty cần biến môi trường hoặc tệp cấu hình. Thông lệ là viết bước đầu của pipeline tạo settings.xml và gradle.properties từ biến bí mật của CI. Như vậy mật khẩu proxy không nằm trong kho mã.
Docker build
Build trong container cần proxy cho cả Docker và công cụ build bên trong. Biến HTTP_PROXY truyền vào container không tự áp cho Maven, Gradle, vẫn phải tạo tệp cấu hình hoặc truyền -D. Cấu hình proxy cho Docker có trong bài proxy Docker.
Bộ nhớ đệm phụ thuộc
Máy CI nên giữ lại thư mục .m2/repository và .gradle/caches giữa các lần build. Ít tải lại đồng nghĩa ít phụ thuộc vào proxy và build nhanh hơn.
So sánh Maven Gradle proxy với công cụ khác
Lập trình viên thường dùng nhiều công cụ cùng lúc, mỗi công cụ một cách cấu hình proxy.
Công cụ |
Đọc HTTP_PROXY |
Nơi cấu hình riêng |
|---|---|---|
Maven |
Không |
settings.xml, thẻ proxies |
Gradle |
Không |
gradle.properties, systemProp |
npm |
Có |
.npmrc, khoá proxy và https-proxy |
pip |
Có |
pip.ini hoặc pip.conf |
git |
Có |
.gitconfig, http.proxy |
Vì Maven, Gradle không đọc biến môi trường, nhiều người đặt HTTP_PROXY rồi tưởng mọi công cụ đã qua proxy. Hướng dẫn cho các công cụ còn lại có trong bài npm proxy, pip proxy và git proxy.
Kiểm tra Maven Gradle proxy đã hoạt động
Sau khi cấu hình, kiểm tra theo vài bước để chắc build đi qua proxy và không có cấu hình nào đè lên.
Xoá bộ nhớ đệm một thư viện
Xoá thư mục của một thư viện nhỏ trong .m2/repository hoặc chạy Gradle với --refresh-dependencies. Build lại để công cụ phải tải từ mạng. Nếu tải được, proxy đã hoạt động.
Thử proxy độc lập
Trước khi nghi cấu hình Maven, Gradle, thử proxy bằng curl với tham số -x tới repo.maven.apache.org. Nếu curl cũng lỗi, vấn đề nằm ở proxy hoặc mạng chứ không phải công cụ build. Các lệnh curl hữu ích có trong bài cURL proxy là gì.
Đo thời gian build
Build lần đầu qua proxy chậm hơn đi thẳng là bình thường. Nếu chậm bất thường, mỗi thư viện mất vài giây, proxy có thể quá tải hoặc ở xa. Dấu hiệu proxy chậm có trong bài proxy bị chậm.
Kiểm tra kho nội bộ đi thẳng
Theo dõi nhật ký với -X hoặc --debug, địa chỉ kho nội bộ không được đi qua proxy. Nếu đi qua, danh sách ngoại lệ viết sai.
Dùng proxy mua cho Maven Gradle
Ngoài proxy công ty, một số tình huống lập trình viên dùng proxy mua cho công cụ build.
Kho bị chậm theo vùng
Một số kho hoặc CDN của kho đôi lúc chậm từ một nhà mạng cụ thể. Proxy ở nhà mạng khác có thể cho đường đi tốt hơn. Đây là tình huống tạm thời, nên đo trước và sau.
Tái hiện môi trường khách hàng
Sản phẩm phần mềm triển khai cho khách hàng có proxy cần được build và chạy thử sau proxy. Dùng một proxy có xác thực để tái hiện, phát hiện sớm chỗ nào trong mã quên đọc cấu hình proxy.
Chọn loại proxy
Công cụ build chỉ cần proxy HTTP ổn định, băng thông tốt, không cần IP dân cư. Proxy datacenter hoặc IPv4 riêng là đủ. Nếu cần proxy Việt Nam tốc độ cao cho môi trường phát triển, anh em có thể mua proxy tại ProxyVN, mỗi proxy hỗ trợ cả HTTP và SOCKS5.
Về SOCKS
Maven không hỗ trợ SOCKS trong thẻ proxies một cách đáng tin cậy. Gradle có thể dùng thuộc tính socksProxyHost của Java, nhưng một số thư viện tải phụ thuộc bỏ qua. Dùng proxy HTTP cho công cụ build là cách ít rắc rối nhất. Khác biệt giữa hai giao thức có trong bài proxy HTTP và SOCKS5.
Mẫu cấu hình Maven Gradle proxy cho cả nhóm
Nhóm phát triển nhiều người nên thống nhất một bộ cấu hình mẫu để thành viên mới cài một lần là build được.
Tệp mẫu đặt trong tài liệu nội bộ
Viết sẵn settings.xml mẫu và gradle.properties mẫu, để trống tài khoản mật khẩu. Ghi rõ địa chỉ proxy công ty, cổng, danh sách kho nội bộ cần đi thẳng, cách lấy chứng chỉ gốc của công ty.
Không đưa cấu hình proxy vào kho mã dự án
Proxy là đặc thù của mạng công ty. Đưa vào gradle.properties của dự án sẽ làm build lỗi trên máy ở nhà, máy CI ngoài công ty và máy của đối tác. Giữ cấu hình proxy ở thư mục cá nhân.
Script cài đặt
Một script nhỏ hỏi tài khoản, ghi hai tệp vào đúng chỗ, chạy mvn --encrypt-password và nhập chứng chỉ gốc vào JDK. Thành viên mới chạy một lần, tránh sai sót khi gõ tay.
Cập nhật khi đổi proxy
Khi công ty đổi máy chủ proxy, chỉ cần sửa tệp mẫu và thông báo. Nếu dùng kho nội bộ, việc đổi proxy chỉ ảnh hưởng máy chủ kho, lập trình viên không phải làm gì.
Bảo mật khi dùng Maven Gradle proxy
Tệp cấu hình công cụ build hay bị sao chép giữa các máy, gửi qua chat khi nhờ đồng nghiệp gỡ lỗi. Thông tin proxy cần được giữ cẩn thận.
Không gửi nguyên tệp cấu hình
Khi nhờ người khác xem lỗi, xoá dòng mật khẩu trước khi gửi settings.xml hay gradle.properties. Lệnh mvn help:effective-settings mặc định che mật khẩu, an toàn hơn khi chia sẻ.
Quyền đọc tệp
Trên Linux, đặt quyền tệp settings.xml và gradle.properties chỉ cho chủ sở hữu đọc. Trên máy dùng chung, người khác không xem được mật khẩu proxy.
Nhật ký build
Chạy với --debug hoặc -X có thể in thông tin cấu hình. Không đưa nhật ký debug đầy đủ lên kênh công khai hay lưu lâu trên máy CI.
Proxy miễn phí
Không dùng proxy miễn phí cho công cụ build. Proxy lạ có thể sửa nội dung thư viện tải về nếu kết nối không được bảo vệ đúng, và ghi lại tài khoản kho riêng. Rủi ro được giải thích trong bài proxy miễn phí có an toàn không.
Câu hỏi thường gặp về Maven Gradle proxy
Maven có đọc biến HTTP_PROXY không
Không. Maven chỉ đọc khối proxies trong settings.xml hoặc thuộc tính Java truyền qua -D. Đặt biến môi trường không có tác dụng với Maven.
Gradle có tự dùng proxy của Android Studio không
Chỉ khi chọn đồng ý ở hộp thoại đồng bộ, Android Studio mới ghi proxy vào gradle.properties. Nếu build từ dòng lệnh, Gradle chỉ dùng gradle.properties.
Vì sao Maven tải được, Gradle thì không trên cùng máy
Hai công cụ cấu hình độc lập. Maven có settings.xml đúng không có nghĩa Gradle có. Thêm systemProp vào gradle.properties ở thư mục cá nhân.
Có cần khai cả http và https không
Có, với Gradle. Hầu hết kho dùng HTTPS nên nhóm https là bắt buộc, nhóm http dùng cho kho cũ còn chạy HTTP. Với Maven, một khối proxy có protocol http thường đủ cho cả hai.
Proxy có làm build chậm không
Lần đầu tải phụ thuộc có chậm hơn một chút. Sau khi thư viện đã nằm trong bộ nhớ đệm cục bộ, build không cần mạng nữa nên không bị ảnh hưởng.
Có cần proxy riêng cho từng dự án không
Thường không. Proxy cấu hình ở thư mục cá nhân áp cho mọi dự án. Chỉ dự án đặc thù, ví dụ cần đi qua proxy khác để tới kho của đối tác, mới cần cấu hình riêng trong thư mục dự án hoặc init script.
Kotlin Multiplatform và dự án Android dùng proxy khác gì
Cả hai đều build bằng Gradle, nên dùng chung cách cấu hình systemProp. Dự án Android cần thêm đồng bộ với Android Studio như đã nói ở trên. Công cụ tải bản phân phối Kotlin, Node.js cho dự án đa nền tảng cũng đọc thuộc tính proxy của Gradle.
Tổng kết
Maven Gradle proxy không đi theo biến môi trường, mỗi công cụ có chỗ cấu hình riêng: Maven dùng khối proxies trong ~/.m2/settings.xml, có thể mã hoá mật khẩu; Gradle dùng các dòng systemProp cho cả http và https trong ~/.gradle/gradle.properties. Viết nonProxyHosts bằng dấu gạch đứng, đồng bộ proxy giữa Android Studio và Gradle, thêm chứng chỉ gốc công ty vào JDK khi gặp lỗi PKIX. Mạng công ty lớn nên dùng kho nội bộ để giảm phụ thuộc vào proxy. Cần proxy Việt Nam ổn định cho môi trường phát triển, anh em liên hệ Proxy.vn - Nhà cung cấp dịch vụ proxy chất lượng hàng đầu Việt Nam để được tư vấn.