sbt
hoạt động theo cách khá chuẩn so với cách các dự án dựa trên JVM khác thường được cấu hình.
sbt trên thực tế là hai "hệ thống con" - trình khởi chạy và lõi. Nó thường xsbt.boot.Boot
được thực thi trước khi lõi khởi động với các tính năng mà chúng ta đều biết (và một số thậm chí còn thích).
Do đó, vấn đề về cách bạn thực thi sbt nói lên cách bạn có thể thiết lập proxy cho lưu lượng truy cập mạng HTTP, HTTPS và FTP.
Sau đây là toàn bộ danh sách các thuộc tính có sẵn có thể được đặt cho bất kỳ ứng dụng Java nào, bao gồm cả sbt, hướng dẫn API Java định tuyến giao tiếp thông qua proxy:
- http Proxy
- http_proxy_user
- http_proxy_pass
- http.proxyHost
- http.proxyPort
- http.proxyUser
- http.proxyPassword
Thay thế http
ở trên bằng https
và ftp
để lấy danh sách các thuộc tính cho các dịch vụ.
Một số sbt
tập lệnh sử dụng JAVA_OPTS
để thiết lập cài đặt proxy với -Dhttp.proxyHost
và -Dhttp.proxyPort
giữa các tập lệnh khác (được liệt kê ở trên). Xem Mạng Java và proxy .
Một số tập lệnh có cách riêng để thiết lập cấu hình proxy bằng thuộc SBT_OPTS
tính .sbtopts
hoặc (chỉ trên Windows) %SBT_HOME%\conf\sbtconfig.txt
. Bạn có thể sử dụng chúng để đặt sbt cụ thể để sử dụng proxy trong khi các ứng dụng dựa trên JVM khác hoàn toàn không bị ảnh hưởng.
Từ sbt
công cụ dòng lệnh:
# jvm options and output control
JAVA_OPTS environment variable, if unset uses "$java_opts"
SBT_OPTS environment variable, if unset uses "$default_sbt_opts"
.sbtopts if this file exists in the current directory, it is
prepended to the runner args
/etc/sbt/sbtopts if this file exists, it is prepended to the runner args
-Dkey=val pass -Dkey=val directly to the java runtime
-J-X pass option -X directly to the java runtime
(-J is stripped)
-S-X add -X to sbt's scalacOptions (-S is stripped)
Và đây là một đoạn trích từ sbt.bat
:
@REM Envioronment:
@REM JAVA_HOME - location of a JDK home dir (mandatory)
@REM SBT_OPTS - JVM options (optional)
@REM Configuration:
@REM sbtconfig.txt found in the SBT_HOME.
Hãy cẩn thận với sbtconfig.txt
điều đó chỉ hoạt động trên Windows chỉ . Khi bạn sử dụng cygwin
tệp không được tư vấn và bạn sẽ phải sử dụng các cách tiếp cận khác.
Tôi đang sử dụng sbt với tập lệnh sau:
$JAVA_HOME/bin/java $SBT_OPTS -jar /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar "$@"
Mục đích của tập lệnh là sử dụng phiên bản sbt mới nhất được xây dựng từ các nguồn (đó là lý do tại sao tôi đang sử dụng /Users/jacek/.ivy2/local/org.scala-sbt/sbt-launch/$SBT_LAUNCHER_VERSION-SNAPSHOT/jars/sbt-launch.jar
) với thuộc $SBT_OPTS
tính làm phương tiện truyền các thuộc tính JVM đến các mục đích sử dụng của JVM.
Tập lệnh trên cho phép tôi đặt proxy trên dòng lệnh trên MacOS X như sau:
SBT_OPTS="-Dhttp.proxyHost=proxyhost -Dhttp.proxyPort=9999" sbt
Như bạn có thể thấy, có nhiều phương pháp để đặt proxy cho sbt, tất cả đều được áp dụng để đặt proxy cho sbt JVM sử dụng.