加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 命令行参数不适用于sbt-assembly jar

发布时间:2020-12-16 19:09:15 所属栏目:安全 来源:网络整理
导读:我试图将命令行参数传递给我用sbt-assembly创建的JAR.这些-Dconfig.file = application.conf和-Dconfig.trace =都没有加载 我的确切命令是 java -jar googleScraper-assembly-0.0.1.jar -Dconfig.trace = loads -Dconfig.resource = application.conf 这是我
我试图将命令行参数传递给我用sbt-assembly创建的JAR.这些-Dconfig.file = application.conf和-Dconfig.trace =都没有加载

我的确切命令是

java -jar googleScraper-assembly-0.0.1.jar -Dconfig.trace = loads -Dconfig.resource = application.conf

这是我的build.sbt

lazy val googleScraper = project.in(file("google-data-scraper"))
  .settings(commonSettings:_*)
  .settings(
    version := "0.0.1",assemblyMergeStrategy in assembly := {
      case m if m.toLowerCase.endsWith("manifest.mf") => MergeStrategy.discard
      case m if m.toLowerCase.matches("meta-inf.*.sf$") => MergeStrategy.discard
      case "log4j.properties" => MergeStrategy.discard
      case m if m.toLowerCase.startsWith("meta-inf/services/") => MergeStrategy.filterDistinctLines
      case "reference.conf" => MergeStrategy.concat
      case "application.conf" => MergeStrategy.concat
      case _ => MergeStrategy.first
    },libraryDependencies ++= Seq(
      "com.typesafe" % "config" % "1.3.0","com.typesafe.play" % "play_2.11" % "2.3.9","com.typesafe.play" % "play-ws_2.11" % "2.3.9","com.ning" % "async-http-client" % "1.8.15"
    ),fork in run := true
  )
  .dependsOn("util")
  .dependsOn("core")

编辑

事实证明,在-jar之前放置参数会产生不同的结果.这现在有效:

java -Dconfig.trace = loads -Dconfig.resource = blah.conf -jar googleScraper-assembly-0.0.1.jar

但现在加载表明应用程序正在尝试从JAR中加载新配置.如何让它完全从外部加载(绝对路径不起作用)?

解决方法

(从评论中提取答案)

JVM选项(如-D)必须在-jar之前

config.file是外部文件,config.resource是类路径上的资源.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读