Как получить разные файлы свойств для разных машин? - PullRequest
0 голосов
/ 22 мая 2019

Итак, я работаю в команде людей над небольшим школьным проектом, и мы разрабатываем веб-приложение java / jsp с apache. Я создал простой файл properties.config, чтобы потом хранить значения и использовать их позже, и это выглядит примерно так:

home_url = http://localhost:8080/to3/
to3_path = C:/Users/User2/Documents/workspace/TO-3
db_url = jdbc:mysql://localhost:3306/to3?useUnicode=true&characterEncoding=UTF-8

Проблема у меня возникает, когда я фиксирую это, и кто-то делает извлечение, они должны изменить значения для URL-адресов и путей, чтобы они соответствовали их машине. Я слышал, что могу создать файл пользовательских свойств, который переопределит эти значения по умолчанию, если он распознает определенную машину, но я не знаю, как это сделать.

Заранее всем спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

Как отмечает Амадан, вы не должны фиксировать свойства проекта. Я предлагаю создать файл с расширением .properties и разместить ваши свойства внутри. Чтобы использовать этот файл в Java, вы можете создать такой класс

public class MyProperties{
    private String homeUrl = "";
    private String to3Path = "";
    private String dbPath = "";

    private final String configPath = System.getProperty("user.home") + File.separator + "my-props.properties";

    public void loadProperties(){
        try {
            Properties prop = new Properties();
            InputStream input = null;
            File filePath = new File(configPath);
            input = new FileInputStream(filePath);
            // load a properties file
            prop.load(input);
            homeUrl = prop.getProperty("home_url");
            to3Path = prop.getPropert("to3_path");
            dbPath = prop.getProperty("db_url");
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

    // getters & setters 
}

Тогда в вашем приложении вы можете сделать

MyProperties props = new MyProperties();
props.loadProperties();
String homeUrl = props.getHomeUrl();

System.getProperty("user.home") даст домашний путь в зависимости от ОС. Например, в Windows это путь C:\Users\yourName

Таким образом, все ваши коллеги могут разместить свои собственные свойства на своем персональном компьютере в своем домашнем пути, и вы сможете работать без конфликтов.

0 голосов
/ 22 мая 2019

Не фиксируйте настройки проекта.Поместите их в .gitignore и передайте копию (например, properties.config.sample).Не забывайте обновлять его всеми добавляемыми вами новыми ключами, но каждый разработчик должен создать собственную неотслеживаемую копию.

...