Scala ConfigFactory.load()未从位于构建jar外部的application.conf获取值

Scala ConfigFactory.load()未从位于构建jar外部的application.conf获取值,scala,apache-spark,hive,Scala,Apache Spark,Hive,我将dev/uat/prod作为参数传递给主类(用spark/scala编写),并期望从位于构建jar外部的配置文件中获取相应环境的用户名/密码。业务需要jar外部的配置文件进行动态编辑。 我收到运行时异常“com.typesafe.config.ConfigException$缺失:找不到键“username”的配置设置” 请澄清 1) 我错过了什么? 2) application.conf不能在构建始终之外以始终获取吗?我是否应该维护src/main/resources的applicatio

我将dev/uat/prod作为参数传递给主类(用spark/scala编写),并期望从位于构建jar外部的配置文件中获取相应环境的用户名/密码。业务需要jar外部的配置文件进行动态编辑。 我收到运行时异常“com.typesafe.config.ConfigException$缺失:找不到键“username”的配置设置” 请澄清 1) 我错过了什么? 2) application.conf不能在构建始终之外以始终获取吗?我是否应该维护src/main/resources的application.conf部分,并构建jar来获取值(来自的引用)? 3) 是否有任何方法可以始终在jar外部维护application.conf以便于动态编辑

//LoadFromOracleToHive class
var environment: String = _
  def main(args: Array[String]): Unit =
  {
  environment = args(0)
val appConfig = ConfigFactory.load(s"application.conf").getConfig("Samp").getConfig(s"${environment}")
      val user :String = appConfig.getString("username")
      val pwd :String = appConfig.getString("password")
  }
//application.conf
HeNAppConf {
  dev {
    username = "userid_dev"
    password = "pwd_dev"
  }
  uat {
    username = "userid_uat"
    password = "pwd_uat"
  }
  prod {
    username = "userid_prod"
    password = "pwd_prod"
  }
}
//my spark-submit
spark-submit --class LoadFromOracleToHive \
--master yarn \
--deploy-mode client \
--driver-memory 4g \
--executor-memory 8g \
--num-executors 15 \
--executor-cores 5 \
--conf spark.kryoserializer.buffer.max=512m  \
--queue csg \
--files /home/myuserfolder/application.conf
--jars /home/myuserfolder/ojdbc7.jar  /home/myuserfolder/myjar prod \
--conf spark.driver.extraClassPath=-Dconfig.file=/home/myuserfolder/application.conf \
--conf spark.executor.extraClassPath=-Dconfig.file=/home/myuserfolder/application.conf
//error snapshot in attachment
```[enter image description here][1]


  [1]: https://i.stack.imgur.com/xXT3Z.png