我正在尝试在公司代理服务器后面运行SBT示例。
sbt new sbt/scala-seed.g8
我按照说明设置了代理:
export SBT_OPTS="$SBT_OPTS -Dhttp.proxyHost=myusername:mypassword@correcthost -Dhttp.proxyPort=correctport -Dhttps.proxyHost=myusername:mypassword@correcthost -Dhttps.proxyPort=correctport"
显示错误:
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.scala-sbt.sbt-giter8-resolver#sbt-giter8-resolver_2.12;0.1.3: public: unable to get resource for org/scala-sbt/sbt-giter8-resolver#sbt-giter8-resolver_2.12;0.1.3: res=https://repo1.maven.org/maven2/org/scala-sbt/sbt-giter8-resolver/sbt-giter8-resolver_2.12/0.1.3/sbt-giter8-resolver_2.12-0.1.3.pom: java.net.UnknownHostException: myusername:mypassword@correcthost: invalid IPv6 address
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[error] java.lang.RuntimeException: Retrieval of org.scala-sbt.sbt-giter8-resolver:sbt-giter8-resolver:0.1.3 failed.
为什么会抛出invalid IPv6 address
错误?
如何为SBT正确设置代理?
感谢。
答案 0 :(得分:0)
据我所知,https://console.firebase.google.com/project/<projectId>
不应采用这种格式。相反,您需要在-Dhttps.proxyHost=myusername:mypassword@correcthost
中提供以下设置,并且当然必须设置变量:
~/.profile
因此,用户名和密码将以其自己的设置覆盖(export SBT_OPTS="-Dhttp.proxyHost=${PROXY_HOST} -Dhttp.proxyPort=${PROXY_PORT} -Dhttps.proxyHost=${PROXY_HOST} -Dhttps.proxyPort=${PROXY_PORT} -Dhttp.proxyUser=$USER -Dhttp.proxyPassword=$PASS -Dhttps.proxyUser=$USER -Dhttps.proxyPassword=$PASS"
)。
答案 1 :(得分:0)
如果您使用的是需要身份验证的代理,那么我为您提供了一种解决方案:)
SBT很难处理需要身份验证的代理。解决方案是,如果您无法按需关闭代理(例如,企业代理),则绕过此身份验证。为此,建议您使用一个鱿鱼代理,并使用用户名和密码对其进行配置,以访问公司代理。请参阅:https://doc.ubuntu-fr.org/squid然后,您可以设置JAVA_OPTS或SBT_OPTS环境变量,以便SBT连接到您自己的本地鱿鱼代理而不是公司代理:
export JAVA_OPTS = "-Dhttps.proxyHost=localhost -Dhttps.proxyPort=3128 -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128"
(只需在您的bashrc中对此进行c / c,而无需进行任何修改,它应该可以正常工作)。
诀窍在于,Squid代理不需要任何身份验证,并且充当SBT与您的其他代理之间的中介。
如果您在使用此建议时遇到麻烦,请告诉我。
此致
埃德加