2012-12-17 44 views
0

如何在同一個項目中爲用戶做不同的項目設置。我有一個.properties文件,其中包含一些.properties文件,其中包含用戶特定的設置。我需要用戶特定的環境設置,例如:email.properties,變量包含在操作系統環境中,或者可能在項目文件用戶的不同項目設置Intellij Idea

+1

每個開發人員對這些.properties文件進行編輯並對其進行編輯以適應個人環境需求有什麼問題嗎? – Makoto

+0

它們包含在mercurial中,一些用戶可能會對其應用更改。電子郵件屬性只是一個示例,有一些文件具有通用項目屬性,另一個文件包含路徑 – RomanowAlex

+0

以不同名稱向mercurial添加模板,並讓單個開發人員複製並填寫模板。 – jackrabbit

回答

0

下面是我在一些項目中做了這個。我創建一個System Property到屬性文件的路徑。該路徑在項目之外,因此屬性文件永遠不會被提交。但爲了幫助第一次運行項目的其他人,我使用默認選項提交模板屬性文件。

在intellij中,我使用與我的同事不同的-D選項啓動項目,並且啓動選項未提交(因爲我們沒有提交.idea文件夾)。

0

結果做了同樣的事情:首先我在propject根目錄下創建屬性文件夾,在其中添加包含當前環境名稱的文件env.properties(或者用戶可以將其添加爲JVM啓動參數-Denv=<env name>。方法Properties getProperty(String fileName)其接收屬性文件名作爲參數,並返回文件中的所有記錄作爲java.util.Properties

public static Properties loadProperties(String fileName) 
{ 
    Properties properties = null; 
    if (propertiesMap.containsKey(fileName)) { 
     properties = (Properties)properties.get(fileName); 
    } else { 
     String environment = getEnvironment(); 
     try { 
      properties = (new PropertiesLoaderImpl()).LoadAllPropertiesForUtilAndEnv(environment, fileName); 
     } catch (FileNotFoundException exception) {}    
    } 
    return properties; 
} 

private static String getEnvironment() { 
    // Проверка на наличие параметра при запуске java-машины 
    String environment = System.getProperty("env"); 
    if (environment == null) { 
     try { 
      // Попытка найти файл env.properties 
      ResourceBundle bundle = ResourceBundle.getBundle("properties/env"); 
      environment = bundle.getString("env"); 
     } catch (MissingResourceException exception) { 
      environment = ""; 
     } 
    } 
    return environment; 
} 

房地產搜索實現了這種方式: 1.看在..proeprties;如果有 2。沒有合適的財產,則查看.property; 3. else return empy。

相關問題