maven - sbt 0.11 : Using a corporate maven repository

标签 maven sbt

how do I get sbt to use a local maven proxy repository (Nexus)?中所述,如何将公司Maven存储库与sbt 0.11.x一起使用(不包括其他存储库)?在github上的新sbt Wiki中没有提及ivyRepositories,因此我假设那里接受的解决方案已过时。

最佳答案

第1步:按照Detailed Topics: Proxy Repositories上的说明进行操作,我已对其进行了总结并添加至以下内容:

  • (如果使用的是Artifactory,则可以跳过此步骤。)在公司Maven存储库上创建一个完全独立的Maven代理存储库(或组),以代理诸如以下两个重要的ivy风格的存储库:
  • http://repo.typesafe.com/typesafe/ivy-releases/
  • http://repo.scala-sbt.org/scalasbt/sbt-plugin-releases/

  • 这是必需的,因为某些存储库管理器无法处理混合在一起的Ivy风格的存储库和Maven风格的存储库。
  • 创建一个文件repositories,以下面所示的格式列出您的主要公司存储库和您在步骤1中创建的任何其他存储库:
    [repositories]
      my-maven-proxy-releases: http://repo.example.com/maven-releases/
      my-ivy-proxy-releases: http://repo.example.com/ivy-releases/, [organization]/[module]/(scala_[scalaVersion]/)(sbt_[sbtVersion]/)[revision]/[type]s/[artifact](-[classifier]).[ext]
    
  • 将该文件保存在主目录内的.sbt目录中,或者在sbt命令行上指定它(您需要指定是否有disabled sharing):
    sbt -Dsbt.repository.config=<path-to-your-repo-file>
    

  • 对于使用较旧版本sbt的人来说是个好消息:即使至少在sbt 0.12.0启动器jar中,较早sbt版本的启动属性文件也不包含必需的行(提到repository.config的行),如果您编辑这些文件以添加所需的行,然后将其重新打包到sbt 0.12.0启动器jar中,则这些版本的sbt仍然适用。这是因为该功能是在启动器中实现的,而不是在sbt中实现的。据说sbt 0.12.0启动器能够启动所有版本的sbt,从0.7开始!

    步骤2:为确保未使用外部存储库,请从解析器中删除默认存储库。可以通过以下三种方式之一来完成此操作:
  • 添加上面“详细主题”页面上提到的命令行选项-Dsbt.override.build.repos=true。这将导致您在文件中指定的存储库覆盖在任何sbt文件中指定的任何存储库。但是,这可能仅在sbt 0.12及更高版本中有效-我尚未尝试过。
  • 与1具有相同的作用,可以使用overrideBuildResolvers := true,其优点是可以根据定义它的范围(项目/ThisBuild/Global)来控制适用项目。这在sbt 0.13中有效。
  • fullResolvers := Seq(解析器用于构建文件中的公司Maven存储库),而不是resolvers ++=resolvers :=或以前使用的任何解析器。

  • 最后,请注意sbt启动器脚本在读取sbtopts文件时存在错误,因此,如果您决定在其中放置常用的sbt命令行选项,请确保文件的最后一行以换行符结尾(特别是Emacs除非进行配置,否则无法确保做到这一点)。

    关于maven - sbt 0.11 : Using a corporate maven repository,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9115405/

    相关文章:

    scala - 在哪里可以找到 Windows 中的 sbtopt

    scala - 从 Scala 源访问 SBT 设置

    java - 从 java 中的 pom.xml 获取属性

    maven - sun.security.validator.ValidatorException 依赖失败

    java - Jenkins build 管道项目

    java - 在 Maven 项目中管理 JAXB 生成的类

    java - 带有 Maven jetty 插件的基本 Jersey Web 服务

    scala - SBT 项目中的 "resources"文件夹有什么用?

    java.lang.NoSuchMethodException : scala. collection.immutable.$冒号$冒号

    scala - 如何根据配置文件在sbt中设置依赖范围?