Играть! Пути Framework 2.0 - играть, запускать, запускать

Храню файлы в папке в игре! project, и у меня есть вопрос о путях. Мое решение работает, но я считаю его неоптимальным.

Мое текущее решение:

public static String getStoragePath(){
    String pubDir =  Play.application().configuration().getString("pathToFiles");

    if(Play.isProd()){ 
        String prodDir = Play.application().configuration().getString("productionPath"); 
        //prodDir variable is "target/scala-2.9.1/classes"

        return Play.application().path().getAbsolutePath() + "/" + prodDir + "/" + pubDir;
    }else{
        return Play.application().path().getAbsolutePath() + "/" + pubDir;
    }
}

Мой вопрос:

Я делаю это так, потому что при запуске "play run" и "play start" пути разные. Есть ли способ избежать использования этого блока if? Я не хочу зависеть от строки productionPath в моем файле конфигурации.


person Bruland    schedule 06.12.2012    source источник


Ответы (1)


Это можно сделать с помощью файла conf. Просто используйте другой файл conf для своей производственной среды, и вам не понадобится много проверок if (isProd ...) в вашем коде.

В Play 2 есть возможность использовать альтернативные / расширяющиеся файлы конфигурации, как описано в документации (< strong> Указание альтернативного файла конфигурации раздел). Кроме того, вы можете создать простой сценарий bash (или файл .bat в Windows) для запуска приложения в желаемом режиме без необходимости каждый раз указывать альтернативный файл.

person Jakob    schedule 06.12.2012
comment
Что, если завтра ваша база пользователей вырастет и вам придется развернуть приложение на другом сервере? Будете ли вы добавлять дополнительную информацию, если хотите знать, является ли это экземпляром 1 или 2 вашего производственного сервера? Нет, ясно, вы должны использовать файлы conf для такого рода проблем. - person i.am.michiel; 06.12.2012
comment
Согласитесь с @Jakob, использование выделенных дополнительных файлов conf на разных машинах и / или в разных режимах - оптимальный способ сделать это. - person biesior; 07.12.2012