Scala SBT插件不使用自定义解析器
我正在尝试将插件添加到我的sbt构建中。出于许多原因,我不希望我的构建依赖于默认的sbt存储库,我已阻止了对它们的网络访问,并以以下方式向我的Scala SBT插件不使用自定义解析器,scala,sbt,Scala,Sbt,我正在尝试将插件添加到我的sbt构建中。出于许多原因,我不希望我的构建依赖于默认的sbt存储库,我已阻止了对它们的网络访问,并以以下方式向我的/project/plugins.sbt添加了一个解析器: resolvers += "local-repo-plugins" at "file:///" + baseDirectory.value + "/libs/repo/" resolvers += Resolver.url("my-ivy-proxy-plugins", url("http://f
/project/plugins.sbt
添加了一个解析器:
resolvers += "local-repo-plugins" at "file:///" + baseDirectory.value + "/libs/repo/"
resolvers += Resolver.url("my-ivy-proxy-plugins", url("http://fullURLForRepo/"))(Patterns("[organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]") )
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.4")
我可以确认它托管在我的ivy代理中的插件,但这甚至不是问题,因为sbt仍在尝试转到默认回购:
[info] Resolving com.typesafe.sbt#sbt-native-packager;0.7.4 ...
[error] Server access Error: Connection timed out url=https://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.sbt/sbt-native-packager/scala_2.10/sbt_0.13/0.7.4/ivys/ivy.xml
[error] Server access Error: Connection timed out url=https://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/com.typesafe.sbt/sbt-native-packager/scala_2.10/sbt_0.13/0.7.4/ivys/ivy.xml
[error] Server access Error: Connection timed out url=https://repo1.maven.org/maven2/com/typesafe/sbt/sbt-native-packager_2.10_0.13/0.7.4/sbt-native-packager-0.7.4.pom
此外,在我的/build.sbt
上,当解析库依赖项时,这个完全相同的自定义解析器工作得很好(与其他几个解析器一起,包括一个基于本地文件系统的解析器)
虽然我理解为什么我的项目构建中使用的解析器与我的/project/plugins.sbt
中使用的解析器不同,但对于我刚才描述的问题,我有几个问题:
/project/plugins.sbt
/build.sbt
sbt.boot.properties
可能会更容易。您可以从0.13.x的
更改sbt.boot.properties
应该可以避免服务器访问错误
local
typesafe-ivy-releases: https://repo.typesafe.com/typesafe/ivy-releases/, [organization]/[module]/[revision]/[type]s/[artifact](-[classifier]).[ext]
maven-central
sonatype-snapshots: https://oss.sonatype.org/content/repositories/snapshots
然后在/project/
目录中的任何.sbt
文件中找到任何解析器。据我所知,sbt
文件是按字母顺序计算的,解析器是按它们在每个文件中出现的顺序添加的我想你们都搞错了,应该是这样的: my_project/project/plugins.sbt应具有:
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.4")
resolvers += ...
和my_project/project/project/build.sbt应具有:
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.4")
resolvers += ...
它们是两种不同的构建定义…文档似乎还没有更新,它们要求您将
解析器
放入插件.sbt
。移动resolvers++=Seq(“Artima Maven存储库”at“http://repo.artima.com/releases“
tobuild.sbt
解决了这个问题。我接受这个答案,因为即使它没有直接为我的问题提供解决方案,它也正确地指出了我的问题本身的问题,由于粘贴的日志不完整,也不能说明我正在解释的问题。这本身就是一个很好的暗示,说明我一开始忽略了一些事情。此外,本答案中的信息和链接信息丰富,非常有用(特别是第二点)。谢谢对不起,我帮不了你什么忙,希望你能解决你的问题。请回来,并张贴一个更好的答案,一旦你这样做:)(我想你可以改变接受的答案)这不是真的。SBT是递归的,所以构建本身是一个项目,其解析器是可定制的。我在回答之前对它进行了测试,这是它对我有效的唯一方式。我并不是说你提到的不起作用。但是您也暗示了解析器不应该在plugins.sbt
中,它本质上应该是相同的(将它放在项目/project/build.sbt
和项目/plugins.sbt
下)。