如何使用sbt发布到Amazon S3

Osc*_*sso 18 amazon-s3 ivy amazon-web-services sbt

如此处所述,可以使用maven部署到Amazon S3.

我们如何用sbt做同样的事情,即用sbt发布到S3?

tpu*_*der 22

这是我写给发布到Amazon S3的SBT插件:https: //github.com/frugalmechanic/fm-sbt-s3-resolver

它与已经提到的sbt-s3-resolver类似,但是Apache 2.0 Licensed(而不是AGPL)并且可以在Maven Central上使用.它也更容易使用和配置.

发布到S3

publishTo := Some("S3" at "s3://s3-us-west-2.amazonaws.com/YOUR_BUCKET/repo")
Run Code Online (Sandbox Code Playgroud)

从S3解决

resolvers += "S3" at "s3://s3-us-west-2.amazonaws.com/YOUR_BUCKET/repo"
Run Code Online (Sandbox Code Playgroud)

启用插件

只需将其添加到project/plugins.sbt文件中:

addSbtPlugin("com.frugalmechanic" % "fm-sbt-s3-resolver" % "0.19.0")
Run Code Online (Sandbox Code Playgroud)

配置AWS凭据

有多种方法可以配置GitHub页面上记录的AWS凭据.

一种方法是创建一个〜/ .sbt/.s3credentials,如下所示:

accessKey = XXXXXXXXXX
secretKey = XXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)

插件将自动获取凭证文件,您将能够解析和发布.


lau*_*lic 6

这个问题已经过时了,所以你可能已经找到了一些解决方法,但这个答案可能会对其他人有用.

我们的团队也遇到了这样的问题,我们刚刚创建了一个sbt-plugin:sbt-s3-resolver.我们暂时使用它似乎做得很好.它可以

  • 将ivy/maven工件发布到S3(私有/公共)存储桶
  • 私人存储桶解析常春藤工件(因为从公共存储桶中你可以使用标准的sbt解析器解析)

请查看自述文件中的使用说明,如果缺少某些内容,请打开问题.


naf*_*afg 2

我还没有尝试过,但是通过查看 api 文档,这可能有效:

  1. 获取http://www.jarvana.com/jarvana/view/org/springframework/aws/spring-aws-ivy/1.0/spring-aws-ivy-1.0-javadoc.jar!/org/springframework/aws/ivy/ S3Resolver.html(请参阅http://repo1.maven.org/maven2/org/springframework/aws/spring-aws-ivy/1.0/ --- 您应该能够在 中下载 jar project/lib/,或放入"org.springframework.aws" % "spring-aws-ivy" % "1.0"project/build.sbt)。
  2. 将其添加到您的 build.sbt 中:

    {
      val s3r = new org.springframework.aws.ivy.S3Resolver
      // call its setters to configure it, see api docs above etc.
      publishTo := Some(new sbt.RawRepository(s3r)
    }
    
    Run Code Online (Sandbox Code Playgroud)

再说一次,我没有尝试过这个,但由于publishTois a SettingKey[Option[Resolver]], and RawRepositoryextendsResolver并接受 an org.apache.ivy.plugins.resolver.DependencyResolver, and S3ResolverImplements DependencyResolver,我猜它会起作用。

毕竟,sbt 实际上只是 Apache Ivy 的一个包装器。