Библиотека Typafe Config недоступна в Intellij Scala

Я использую конфигурацию ficus и typafe для управления конфигурациями.

Я хочу использовать рабочий лист Intellij's scala в этом проекте, но когда я пробую следующий код:

import what.ever.ApplicationSetting

ApplicationSetting.aws.accessKey

Однако я получаю следующую ошибку:

java.lang.ExceptionInInitializerError
    at some.thing.A$A11$A$A11.get$$instance$$res0(testRes.sc:3)
    at #worksheet#.#worksheet#(testRes.sc:11)
Caused by: com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'aws'
    at com.typesafe.config.impl.SimpleConfig.findKey(SimpleConfig.java:124)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:147)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:159)
    at com.typesafe.config.impl.SimpleConfig.find(SimpleConfig.java:164)
    at com.typesafe.config.impl.SimpleConfig.getString(SimpleConfig.java:206)
    at net.ceedubs.ficus.readers.StringReader$$anon$1.read(StringReader.scala:7)
    at net.ceedubs.ficus.readers.StringReader$$anon$1.read(StringReader.scala:6)
    at what.ever.ApplicationSetting$$anon$1.read(ApplicationSetting.scala:24)

Содержание application.conf:

package what.ever

import com.typesafe.config.ConfigFactory
import net.ceedubs.ficus.Ficus._
import net.ceedubs.ficus.readers.ArbitraryTypeReader._

object ApplicationSetting {

  val env = sys.env.getOrElse("DEV_ENV", "default")
  val config = {
    ConfigFactory.defaultOverrides
      .withFallback(ConfigFactory.load(env))
      .withFallback(ConfigFactory.load)
  }

  case class AWS(accessKey: String,
                 secretKey: String)

  val aws = config.as[AWS]("aws")

}

Мне кажется странным, потому что тот же код работал на консоли scala.

Буду признателен за любое предложение.

В случае, если вы хотите проверить код проверки этого репо .

scala,intellij-idea,typesafe-config,

3

Ответов: 1


2

Обходной путь, который я нашел, - загрузить файл конфигурации по-другому. Сначала измените конфигурационный файл на нечто подобное, myAppConf.confчтобы избежать исчезновения файлов конфигурации из стратегий слияния.

package what.ever

import java.io.File
import com.typesafe.config.ConfigFactory
import net.ceedubs.ficus.Ficus._
import net.ceedubs.ficus.readers.ArbitraryTypeReader._

object ApplicationSetting {

  val confPath = getClass.getResource("/myAppConf.conf") 
  val config = ConfigFactory.parseFile(new File(confPath.getPath)).resolve()

  case class AWS(accessKey: String,
                 secretKey: String)

  val aws = config.as[AWS]("aws")

}
Скала, IntelliJ-идея, типизированная-конфигурация,
Похожие вопросы