问题描述
我正在尝试为publishTo创建一个全局设置。我的问题是我们的存储库仅配置为http而不是https。
从sbt 1.3开始,我需要在设置中添加allowInsecureProtocol,但是由于这不是sbt 1.2 API的一部分,因此我无法在1.2和1.3中使用该设置,这会破坏任何尚未迁移到的项目1.3。
可以有条件地配置它。例如.sbt / 1.2 / global.sbt和.sbt / 1.3 / global.sbt。
解决方法
可能不推荐,但我设法通过反思来破解。
val hacked = try {
classOf[MavenRepository]
.getMethod("withAllowInsecureProtocol",classOf[Boolean])
.invoke(repo,true.asInstanceOf[AnyRef])
.asInstanceOf[MavenRepository]
} catch { case _: java.lang.NoSuchMethodException => repo }