小编zax*_*xme的帖子

Jenkins 2.0:在docker容器中运行SBT

我有以下内容Jenkinsfile:

def notifySlack = { String color, String message ->
    slackSend(color: color, message: "${message}: Job ${env.JOB_NAME} [${env.BUILD_NUMBER}] (${env.BUILD_URL})")
}

node {
    try {
        notifySlack('#FFFF00', 'STARTED')
        stage('Checkout project') {
            checkout scm
        }
        scalaImage = docker.image('<myNexus>/centos-sbt:2.11.8')
        stage('Test project') {
            docker.withRegistry('<myNexus>', 'jenkins-nexus') {
                scalaImage.inside('-v /var/lib/jenkins/.ivy2:/root/.ivy2') { c ->
                    sh 'sbt clean test'
                }
            }
        }
        if (env.BRANCH_NAME == 'master') {
            stage('Release new version') {
                docker.withRegistry('<myNexus>', 'jenkins-nexus') {
                    scalaImage.inside('-v /var/lib/jenkins/.ivy2:/root/.ivy2') { c ->
                        sh 'sbt release'
                    }
                }
            }
        }
        notifySlack('#00FF00', 'SUCCESSFUL') …
Run Code Online (Sandbox Code Playgroud)

sbt jenkins docker jenkins-pipeline

11
推荐指数
1
解决办法
1467
查看次数

sbt-buildinfo生成的对象无法被引用

我正在使用前面提到的 sbt 插件来获取我正在开发的应用程序的版本。

该项目有子模块。这是主要的build.sbt

...

lazy val abandon = (project in file(".")).
  aggregate(base, cli, gui).
  dependsOn(base, cli, gui).
  enablePlugins(BuildInfoPlugin).
  settings(commonSettings: _*).
  settings(
    name := "abandon",
    fork in run := true,
    buildInfoKeys := Seq[BuildInfoKey](name, version, scalaVersion, sbtVersion),
    buildInfoPackage := "co.uproot.abandon"
  )

lazy val base = (project in file("base")).
  settings(commonSettings: _*).
  settings(
    name := "abandon-base",
    fork in run := true
  )


lazy val cli = (project in file("cli")).
  dependsOn(base).
  settings(commonSettings: _*).
  settings(
    name := "abandon-cli",
    fork in run := true
  ) …
Run Code Online (Sandbox Code Playgroud)

scala intellij-idea sbt sbt-buildinfo

5
推荐指数
1
解决办法
4023
查看次数

SBT:具有不同依赖项的两个 Scala 版本的交叉构建项目

我有以下用例。我想为 Scala 2.10 和 2.12 构建相同的 Scala 项目。这样做时,我想为 2.10 版本指定一些依赖项,而我想在 2.12 的 jar 中编译这些依赖项。

我正在查看 SBT 的文档,发现如何将 a 拆分build.sbt为单独的声明,但这些声明总是被提及为sub-modules。就我而言,我想交叉构建整个应用程序 - 而不是它的特定部分。

任何提示或资源将不胜感激。

scala sbt cross-build

5
推荐指数
1
解决办法
1238
查看次数

Scala分区一套

我正在研究如何根据第三组的内容将一组分成两组.我无意中偶然发现了这个解决方案:

val s = Set(1,2,3)
val s2 = Set(4,5,6)
val s3 = s ++ s2

s3.partition(s)
res0: (scala.collection.immutable.Set[Int],scala.collection.immutable.Set[Int]) = (Set(1, 2, 3),Set(5, 6, 4))
Run Code Online (Sandbox Code Playgroud)

签名partition如下:

def partition(p: A => Boolean): (Repr, Repr)
Run Code Online (Sandbox Code Playgroud)

有人可以向我解释如何提供一个集合而不是一个函数吗?

提前致谢

scala set partition

3
推荐指数
1
解决办法
288
查看次数

Spark RDD foreachPartition到S3

我目前正在探索Spark。我面临以下任务-获取RDD,根据特定条件对其进行分区,然后将多个文件写入S3存储桶中的不同文件夹中。

一切正常,直到我们开始上传到S3部分。我在SO上阅读了所有与该问题有关的问题,发现我可以使用RDD AmazonS3Client或使用该saveToTextFile方法。我面临两个问题:

  1. 如果我选择“ AmazonS3Client我”,则java.io.NotSerializableException因为代码是从Spark驱动程序发送到工作程序的,因此需要进行序列化,并且显然AmazonS3Client不支持该代码。

  2. 如果我一起去,saveToTextFile我会面临类似的问题。当我进入foreachPartition循环时,我需要获取Iterable[T](在这种情况下p),因此,如果要使用它saveToTextFile,则需要创建Iterable的RDD,因此需要创建parallelize。问题在于,SparkContext sc也(理应如此)不会序列化。

rdd.foreachPartition { p => sc.parallelize(p.toSeq).saveAsTextFile(s"s3n://") }

任何帮助将不胜感激。

amazon-s3 apache-spark

3
推荐指数
1
解决办法
752
查看次数

Mac M1 Rust:找不到 ld 框架 CoreFoundation M1

切换到 M1 后,我在用 Rust 编译板条箱时遇到问题。该板条箱是“sqlx-macros”。正如sqlx repo中所讨论的,很明显这不是板条箱本身的问题。挖掘 with ld framework not found CoreFoundation M1,我无法解决我的问题。

我在跑:

rustc 1.57.0 (f1edd0429 2021-11-29)
rustup default stable-aarch64-apple-darwin
Run Code Online (Sandbox Code Playgroud)

这是有问题的错误:

error: linking with `cc` failed: exit status: 1
  |
  = note: "cc" "-arch" "arm64" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.0.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.1.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.10.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.11.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.12.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.13.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.14.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.15.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.2.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.3.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.4.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.5.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.6.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.7.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.8.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.sqlx_macros.3789a723-cgu.9.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.312opvse87l793yj.rcgu.o" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/sqlx_macros-407f772bf8e457dd.281281m3wpaf90be.rcgu.o" "-L" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps" "-L" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/build/ring-00b2699d202c565f/out" "-L" "/Users/ulquiorra/.rustup/toolchains/stable-aarch64-apple-darwin/lib/rustlib/aarch64-apple-darwin/lib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libdotenv-bcf0aca3b7bc8cd4.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libheck-626c5462f41d3929.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libunicode_segmentation-4b1977349c37e802.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libsyn-0c9f33ce0d41da04.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libsqlx_core-ae6ab38c5a09aaa7.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libcrc-da62e3c7cbfe97f5.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libcrc_catalog-d8370c27944dfe7a.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libhex-963718e6915ebdf6.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libwhoami-b6636d0fe6b91268.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libdirs-98e36b19a30fbb31.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libdirs_sys-d59a29575635414f.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libtokio_stream-530bb3979e3faf40.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libwebpki_roots-f4d1a9e1a1d281a7.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libsqlformat-db946c9c86afc529.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libunicode_categories-d7806e456d1ab4fc.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libnom-9324692423ffb34a.rlib" "/Users/ulquiorra/workspace/mine/toys/zero2prod/target/debug/deps/libitertools-d0210e435c329f53.rlib" …
Run Code Online (Sandbox Code Playgroud)

rust apple-m1

2
推荐指数
1
解决办法
1657
查看次数

Akka-http非法请求标头

我公开了一个简单的终结点,该终结点包含两个查询参数。当我在本地测试代码时,我没有任何问题。但是当部署到产品时,我会看到以下消息:

a.a.ActorSystemImpl Illegal request header: Illegal 'cookie' header: Invalid input '/', expected tchar, '\r', WSP or '=' (line 1, column 186): ...
Run Code Online (Sandbox Code Playgroud)

如您所见,我没有进行任何Cookie解析

import akka.actor.{ActorSystem, Props}
import akka.http.scaladsl.Http
import akka.http.scaladsl.server.Directives._
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.Sink

object MainApp extends App {
  implicit val system = ActorSystem()
  implicit val materializer = ActorMaterializer()

  private val config = system.settings.config

  private val server = Http().bind(config.getString("akka.http.server.interface"), config.getInt("akka.http.server.port"))

  private val route = {
    path("replay") {
      get {
        parameters("fromDate", "toDate") { (fromDate, toDate) =>
          complete {
            <some other code> …
Run Code Online (Sandbox Code Playgroud)

scala akka-http

1
推荐指数
1
解决办法
4349
查看次数