退出 SSH 会话后持久化 sbt 进程的最合适方法?
我如何保留一个过程,特别是通过sbt命令产生的过程,在退出我的ssh session后活着?以下相关问题 [1] , [2] ,Ubuntu 12.04.2 LTS JVM X.X.X (is JDK 1.7 update 24+) Scala X.X.X sbt X.X.X 我通过ssh通过我的大学网络访问每个节点.我尝试过tmux并分离会话,但是只要我自己的笔记本电脑不重新启动,这只会持续到该过程.我采取以下步骤开始每个节点上的程序: 通过ssh user@host -p port 登录每个节点 导航到适当的目录,并使用sbt * 启动我的程序 在sbt console 中发出run命令 *实际命令是sbt -Dgeotrellis cluster_seed_ip=xxx.xxx.xxx.xxx 是disown或nohup最合适的方法?给出了一个或另一个的答案,如果使用disown方法,我需要发出哪些具体和句法正确的命令( console )从我的用户帐
24 2024-04-22
编程技术问答社区
如何将位于根目录下的jar文件添加到sbt的库依赖关系中?
我有一个需要在项目根文件夹中的JAR文件的情况. 我尝试了以下: "ccp.mts.test" % "mts-test_2.12-0.2" % "2.0" from "/mts-test_2.12-0.2.jar" 它不起作用.然后我尝试了下面的尝试: unmanagedJars in Compile += file("lib/mts-test_2.12-0.2.jar") 这也不起作用. 我该怎么做? 解决方案 您未指定file协议.尝试以下 libraryDependencies += "org.aspectj" % "aspectjrt" % "1.9.2" from ("file://./aspectjrt-1.9.2.jar") 编辑 我正在根据您的评论修改答案. 为了提供绝对路径,您可以使用以下代码段 val currentDirectory = new java.io.File(".").getCanoni
24 2024-04-05
编程技术问答社区
oss.sonatype.org的SBT解析器不工作
我有一个问题(可能与我的build.sbt文件的不良配置有关),但是在过去的15分钟里,我一直无法弄清楚什么. 我有以下构建.SBT: scalaVersion := "2.12.1" version := "0.1" resolvers += "Sonatype OSS Snapshots" at "https://oss.sonatype.org/content/repositories/snapshots" libraryDependencies += "io.plasmap" %% "geow" % "0.3.11-SNAPSHOT" 由于某种原因,当我尝试运行sbt update(或编译或运行)时,我会沿着: 的行错误. sbt.resolve exception:未解决的依赖性: io.plasmap#geow_2.12; 0.3.11-snapshot:找不到 这很奇怪,因为我要下载的快照绝对是该存储库.那我到底做错了什么?我应该如何
28 2024-04-05
编程技术问答社区
在SBT'编译时出现的StackOverflow错误
在构建时(使用编译或测试:编译),我得到此错误: [info] [specializing CorrelationDal.scala] [error] {file:/home/bamboo/.../}batch/compile:compile: java.lang.StackOverflowError [error] Total time: 20 s, completed Feb 28, 2012 7:32:08 AM 您可以看出,我在scalacoption键中设置了" -verbose"选项. 我决定尝试使用: 给出更大的堆栈尺寸. (fork := true) ++ (javaOptions += "-Xss4G") 但这一无所有. 我试图检查我对关联dal.scala的更改,并尝试放松其需要做的推理量(明确指出类型,删除链接的迭代创建等),但是我可以' t确实说明了哪些是罪魁祸首,而没有对Scala编译器的内部理解. 有人有任何有关如何达到
20 2024-04-05
编程技术问答社区
如何在具有多个子项目的 SBT 项目中覆盖子项目中的设置
我有一个项目,其中包括子目录中的git子模块,每个独立的项目都有自己的build.sbt文件.根项目取决于并汇总了这些子项目.如何覆盖这些子标记中的设置值(例如organization或version)? lazy val p1 = (project in file("p1")) .settings(organization := "xyz.abc") // This does not work :( lazy val root = (project in file(".")) .dependsOn(p1) .aggregate(p1) 解决方案 尝试将状态覆盖 onLoad 类型State => State,并在所有项目均为执行一次 建造和加载. 例如, lazy val settingsAlreadyOverriden = SettingKey[Boolean]("settingsAlreadyOverriden","Has overrid
18 2024-04-05
编程技术问答社区
SBT,在建立的jar中包括整个外部目录(包括dir本身)。
我需要在我的SBT生成的JAR文件中包括整个static目录(可选文件夹重命名). 仅将其路径添加到unmanagedResourceDirectories添加它的内容,而不是在Jar root中导致static内容的整个目录.我正在玩各种映射,但没有运气. 是否有人有类似的用例,可以将我指向正确的方向? 我无法修改生成static dir的过程,并且无法使用它的父母,因为它具有我不想要内部的其他文件/dir. 解决方案 好吧,我用SBT的Gitter频道上的一些提示对其进行了整理.所以mappings是我需要的: mappings in (Compile, packageBin) := { val statics = contentOf(baseDirectory.value / "static").map { case (file, dest) => file -> s"webapp/$dest" } (mappings in (C
16 2024-04-05
编程技术问答社区
在Ubuntu 18.04上安装sbt出错:`gpg: keyserver receive failed: 无效参数`。
我正在关注官方SBT安装说明. $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 Executing: /tmp/apt-key-gpghome.uRI0yiusG0/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 gpg: keyserver receive failed: Invalid argument 编辑: 我尝试挖掘它执行的gpg.1.sh脚本.这是gpg的最后电话. $ sudo cat /tmp/apt-key-gpghome.IRnmlx6hfX/gpg.0.sh #!/bin/sh exec 'gpg' --ignore-time-c
46 2024-04-05
编程技术问答社区
在sbt 1.0.x中删除或排除WatchSource
概述 在互联网上浏览了一段时间后,我没有找到一种很好的方法来省略某些文件夹在play Framework应用程序中被sbt 1.0.x观看. sbt旧版本发布的解决方案: 如何将文件夹排除在编译中 如何不观看文件游戏框架的变化 还有更多,但或多或​​少相同. 和1.0.2的发行说明表明+=和++=行为已维持,但其他所有内容都被删除了. sbt.org/1.x/docs/sbt-1.0-release-notes.html 源代码验证: https://www.scala-sbt. org/1.0.4/api/sbt/观看 $ .html 很想看看是否有人使用sbt 1.0.x找到了这个问题的解决方案或解决方法.谢谢! 解决方案 采用sbt watchSources := { val directoryToExclude = "/Users/mgalic/sandbox/scala/scala-seed-project/src/main/s
14 2024-04-05
编程技术问答社区
将sbt(play!)项目与maven父级pom进行整合
我有一个Maven项目,周围有多个Maven模块.所有这些模块都包装到JAR文件中,这些文件是我游戏的依赖性!作为SBT项目构建的应用程序: MyProject -> pom.xml (parent) MavenModule1 -> pom.xml (child pom) MavenModule2 -> pom.xml (child pom) PlayApplication -> Build.scala (SBT project) 由于所有maven模块都是父模块的子项目(myproject),因此我可以转到" myproject",Execute mvn clean install和整个项目,除了构建PlayApplication. 问题是如何将父型POM/SBT构建文件与其余模块一起启动playapplication构建? (我知道可能没有简单的,可以做到这一点的方法,因此所有黑客都受到欢迎:)) 解决方案 使用 build.scala的示例(所有
22 2024-04-05
编程技术问答社区
如何设置SBT的默认项目
假设我有一个带有三个项目的构建:A,B和C.如果我目前处于A的背景下并重新加载构建,则可能会将上下文更改为重新加载后的C.因此,我必须在重新加载后每次都会更改我的项目上下文. 有没有办法将特定项目设置为默认上下文? 解决方案 SBT选择第一个词法项目变量名称,因此我将项目名称设置为: val aaaFrontend = PlayProject( 另外,我相信您可以覆盖一个项目SEQ. 最后,在SBT 0.12中,您可以在您中进行.sbtrc: alias boot = ;reload ;project X ;iflast shell 其他解决方案 不是对您的问题的确切答案,但是您可以定义一个同时运行reload和project A命令的别名.如果您在项目的根目录中创建.sbtrc文件,请添加 alias rl = ;reload;project A 然后您每次要重新加载时都可以键入rl 其他解决方案 SBT的下一个版本将记住您所
16 2024-04-05
编程技术问答社区
使用SBT来构建纯Java项目
从历史上看,我已经使用了Ant+Ivy或Maven来构建我的Java项目. 我现在正在寻找基于非XML的解决方案. gradle可以编译,jar和发布我的项目. 我可以使用SBT做同样的事情吗? 如果是这样,您可以提供一个简单的示例,说明使用SBT构建仅Java项目. 解决方案 是的,这是完全可能的.实际上没有什么可设置的,一个小的构建.SBT文件应该可以解决问题,例如: organization := "your.group.id" name := "Your project" version := "1.0-SNAPSHOT" libraryDependencies ++= Seq( ) 和运行sbt package从命令行. 其他解决方案 对我来说,它也有助于从生成的工件路径中删除Scala版本信息,如此答案).您还需要从您发布的任何POM或IVY文件中删除Scala库作为依赖项. 这是您
22 2024-04-04
编程技术问答社区
播放框架: 包javax.inject不存在
在我的Play 2.0 Framework Java项目中,以下行在Eclipse和SBT编译步骤中产生错误: import javax.inject.*; 我已经在我的build.sbt文件中添加了javax.inject依赖项: libraryDependencies ++= Seq( javaCore, javaJdbc, javaEbean, javaWs, javaFooBar, cache, "javax.inject" % "javax.inject" % "1", "org.atmosphere" % "atmosphere-play" % "2.1.1" ) 并执行clean,update&eclipse with-source=true喜欢疯狂: [myproject] $ eclipse with-source=true [info] About to create Eclip
10 2024-04-04
编程技术问答社区
在sbt外壳中设置环境变量
我希望能够从交互式SBT Shell内部设置一个环境变量,而且我似乎找不到一种方法来做到这一点. (我已经看了官方的SBT文档以及Stackoverflow,没有成功). 我想清楚地表明,我不想在build.sbt文件中设置此环境变量,而是能够在我的Interactive SBT上飞行更改它shell session,以便将环境变量用于我运行的下一个SBT命令. 例如,我希望能够做类似的事情(从SBT外壳中): > set_environment_variable("foo", "foo_value") > `mymodule`/run > (... program runs and completes) > set_environment_variable("foo", "another_foo_value") > `mymodule`/run 这可能吗?如果是这样,我该怎么做? 解决方案 使用SBT 0.13.15我发现的唯一对我有用的东西是使用eval
22 2024-04-04
编程技术问答社区
如何配置 Eclipse 以运行外部构建器或 shell 命令?
我希望能够从Eclipse,尤其是构建器中运行外壳工具.如何设置日食,以便在需要构建时运行外部命令?另外,我如何配置日食,以便我可以告诉它按需手动运行外部命令? 激发了这一需求的是,我希望能够从Eclipse内部执行SBT构建.我知道Scalaide,但这对我的Android开发不起作用. 解决方案 这是我目前与SBT和Android-Plugin一起进行的.这些说明将同样适用于您想从Eclipse内运行的任何外部工具. 有可能要求开发人员手动启动构建或将构建视为日食构建器.可以将构建器配置为由各种触发器运行(手动构建,清洁构建,保存后的保存等) ) 配置SBT以作为建造者运行: 将您的SBT项目导入Eclipse. (请参阅这个答案.) 右键单击SBT项目,单击属性. 单击type filter text下的构建器项目. 取消选中或删除Java构建器.如果您不这样做,它可能会干扰外部建筑商.如果您的外部工具没有构建,但是在构建后做某事
12 2024-04-04
编程技术问答社区
如何使一个sbt任务使用一个特定的配置范围?
我有一个任务lazy val task = TaskKey[Unit]将lazy val setting = SettingKey[String]作为输入.我也有三个不同的独立配置示波器(config("dev"),config("stage"),config("prod"))和build.sbt文件,为每个配置示波器指定setting的不同值(setting in stage := "foo" ...) . i期望使用配置范围前缀调用task将使任务使用来自相应配置范围的值(例如>dev:task将使任务使用setting值setting值dev,使用command >stage:task将使任务使用setting的值来自stage,...).但是,这似乎不起作用. 如何强制task使用特定配置范围的设置? build.sbt: setting := "default setting" setting in stage := "stage setting"
14 2024-04-04
编程技术问答社区
SBT: 如何访问环境变量或配置?
我发布到内部Nexus存储库.我们有两个存储库"开发"和"生产".开发人员使用Dev Repo,构建团队使用了他们从安全区域中的机器访问的生产存储库.我想添加一个环境变量或SBT配置,该变量以默认值为" dev"定义阶段.在生产盒上,阶段将被淘汰为"生产".我怎样才能做到这一点?我能够在build.sbt文件中定义阶段并将其在发布To Task中使用,我只是无法弄清楚如何从环境中获取值.这是我拥有的. val stage = settingKey[String]("stage") stage := "dev" publishTo val nexus = "http://my-internal-nexus:8081/nexus/content/repositories/" if (v.trim.endsWith("SNAPSHOT")) Some("snapshot
16 2024-04-04
编程技术问答社区
如何从命令行运行不含测试的sbt装配命令?
我阅读了问题: this that .他们建议修改SBT文件.但是我希望在没有测试的情况下运行sbt clean assembly,并且不会修改SBT构建文件. SBT是否可以?在Maven中有-DskipTest=true参数,是否有SBT的类似物? 解决方案 对于您需要在命令行上更改的任何属性,请用"设置"准备它们,然后用引号包装. Windows的示例: sbt "set test in assembly := {}" clean assembly Mac的示例: sbt 'set test in assembly := {}' clean assembly
16 2024-04-04
编程技术问答社区
使用SBT进行跨平台构建
我目前正在测试SBT本机封装器,我所需的结果是为每个受支持的平台都有一个本机安装程序.显然,为此,平台特定的SBT任务需要在该平台上运行. 构建将通过Atlassian的Bamboo或Jetbrains的团队城市完成. 理想情况下,我只会进行一次汇编和测试一次,并重用包装任务的相同伪像. 与SBT一起处理的好方法是什么? 我能想到的一种方法是在任何平台上进行编译并测试,然后将其发布到本地存储库.然后包装将以某种方式使用这些.但是,这也需要更改包装,以便它不依赖编译任务等. 解决方案 tl; dr版本:使用单独的SBT项目. 正如您可能指出的那样, JDKPackager JDKPackager 插件在各个平台上创建本机软件包.曾经构建和测试主要工件的诀窍是将它们发布到工件服务器,然后有一个单独的项目来创建安装程序. 如果您的项目每个平台只需要一个安装程序,那么您要做的就是添加依赖项,设置mainClass键,然后添加: enablePlu
12 2024-04-04
编程技术问答社区
Scala构建崩溃了
我将Scala和SBT版本分别更新为2.12.0和0.13.8.现在,每个构建都因错误而失败: java.lang.VerifyError: Uninitialized object exists on backward branch 209 Exception Details: Location: scala/collection/immutable/HashMap$HashTrieMap.split()Lscala/collection/immutable/Seq; @249: goto Reason: Error exists in the bytecode Bytecode: 0000000: 2ab6 0057 04a0 001e b200 afb2 00b4 04bd 0000010: 0002 5903 2a53 c000 b6b6 00ba b600
12 2024-04-04
编程技术问答社区