我有一个sbt构建,当我从命令行运行,但Intellij不喜欢.我的Intellij在Linux上运行,它的版本是14.1.4,我的scala插件是1.5.2.
Intellij抱怨我使用了enablePlugins(JavaAppPackaging).错误是"表达式类型(DslEntry)必须符合SBT文件中的设置[_]".
我的project/build.properties文件:
sbt.version=0.13.8
Run Code Online (Sandbox Code Playgroud)
我的项目/ plugins.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.0.3")
Run Code Online (Sandbox Code Playgroud)
还有我的build.sbt的前几行
enablePlugins(JavaAppPackaging)
organization := "org.bodhi"
name := "jar-patch"
version := "1.0"
Run Code Online (Sandbox Code Playgroud) 我发布到内部Nexus存储库.我们有两个回购,"开发"和"生产".开发人员使用dev repo,构建团队使用他们从安全区域中的计算机访问的生产仓库.我想添加一个环境变量或SBT配置,用于定义STAGE,默认值为"dev".在生产构建框中,STAGE将覆盖"生产".我怎样才能做到这一点?我能够在build.sbt文件中定义stage并在publishTo任务中使用它,我无法弄清楚如何从环境中获取值.这就是我所拥有的.
val stage = settingKey[String]("stage") 
stage := "dev"
publishTo <<= (version, stage) { (v: String, s: String) =>
  val nexus = "http://my-internal-nexus:8081/nexus/content/repositories/"
  if (v.trim.endsWith("SNAPSHOT"))
    Some("snapshots" at nexus + s + "-snapshots-m2")
  else
    Some("releases"  at nexus + s + "-releases-m2")
}
Run Code Online (Sandbox Code Playgroud) 我有一个json文件people.json:
{
  "Joe" : {"Job" : "Clown", "Age" : 22},
  "Sally" : {"Job" : "Programmer", "Age" : 32},
  "Anne" : {"Job" : "Clown", "Age" : 29}
}
Run Code Online (Sandbox Code Playgroud)
我想选择一个小丑的人.我的输出应该如下所示:
{
  "Joe" : {"Job" : "Clown", "Age" : 22},
  "Anne" : {"Job" : "Clown", "Age" : 29}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试过..运算符了
cat people.json | jq '. | map(select(.Job == "Clown"))'
Run Code Online (Sandbox Code Playgroud)
但它似乎在多个级别匹配乔和安妮,并产生更多的输出,然后我想要.有任何想法吗?谢谢.
我有类型的问题,我不明白.在下面的代码中,我有两个方法half1,half2它们完全相同,只是half1显式指定了返回类型.然而,当我在foldLeft中使用这两个方法时half会导致编译器错误.这是代码.设置的行val c有问题.
package org.bodhi.reactive.`try`
import scala.util.{Try, Success, Failure}
object Hello {
   def main(args: Array[String]): Unit = {
    val list = List(1,2,3)
    Try(1024).flatMap(half1)
    Try(1024).flatMap(half2)
    half1(1024).flatMap(half1)
    half2(1024).flatMap(half2)
    val a = list.foldLeft(Try(1024))((accum, n) => accum.flatMap(half1))
    val b = list.foldLeft(half1(1024))((accum, n) => accum.flatMap(half1))
    val c = list.foldLeft(half2(1024))((accum, n) => accum.flatMap(half2)) // Compiler error
  }
  def half1(n: Int): Try[Int] =  
    if (n % 2 == 0) Success(n / 2)
    else Failure(new Exception(s"WRONG $n"))
  def half2(n: …Run Code Online (Sandbox Code Playgroud)