Я пытаюсь передать аргументы командной строки в свой JAR, созданный с помощью sbt-assembly
. Ни один из этих -Dconfig.file=application.conf
и -Dconfig.trace=loads
Моя точная команда
java -jar googleScraper-assembly-0.0.1.jar -Dconfig.trace=loads -Dconfig.resource=application.conf
Это моя сборка.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. Как я могу загрузить его полностью извне (абсолютный путь не работает)?