Как получить доступ к файлам конфигурации при запуске приложения sbt-assembly?

В настоящее время я использую sbt-assembly, чтобы превратить мой проект Scala в банку.

В этой программе у меня есть несколько файлов конфигурации:

\root    
    aws.properties
    \src
        \resource
            application.conf    

Нет проблем, когда программа работает с sbt или IDE.

Однако, когда я делаю это как банку, приложение не может найти файлы конфигурации, поэтому что-то не может запуститься.

Есть ли способ сообщить sbt-assembly, где находится файл?

Обновлять

Вот как я пытался получить доступ к файлам конфигурации:

val configPath: String = ConfigFactory.load.getConfig("aws").getString("configFile")
val regionName = ConfigFactory.load.getConfig("aws").getString("region")
val credentialFile: File = new File(credentialFilePath)
val credentials: AWSCredentials = new PropertiesCredentials(credentialFile)

person Chris Kong    schedule 12.06.2014    source источник
comment
показать пример кода того, как вы получаете доступ к файлам conf   -  person Nimrod007    schedule 12.06.2014
comment
почему бы не поместить aws.config в папку ресурсов?   -  person Nimrod007    schedule 12.06.2014
comment
Пожалуйста, добавьте свои файлы сборки — build.sbt и/или project/*.scala — и сообщение об ошибке или даже лучше — загрузите свой проект на GitHub, чтобы клонировать и поиграть с ним.   -  person Jacek Laskowski    schedule 12.06.2014


Ответы (2)


Когда вы соберете свое приложение, распакуйте его, чтобы увидеть его содержимое. Любые несоответствия в расположении файлов, вероятно, могут быть устранены с помощью сопоставления в сборе.

person Jacek Laskowski    schedule 12.06.2014
comment
Ваша ссылка на сборку Mappings не работает. - person thund; 14.04.2015

У меня такая же проблема. У меня был файл AwsCredentials.properties в папке src/main/java. Это работало нормально, когда я запускал sbt-assembly из папки проекта eclipse.

Однако, когда я запускал sbt-assembly на другой машине без eclipse, это не помещало AwsCredentials.properties в толстую банку.

Поэтому я переместил AwsCredentials.properties в src/main/resources, и это исправило ситуацию.

person thund    schedule 14.04.2015