用户Intellij Idea的不同项目设置

时间:2012-12-17 05:58:17

标签: intellij-idea settings environment

如何为同一项目中的用户执行不同的项目设置。我有一个项目,其中包含一些.properties文件,如email.properties,其中包含用户特定的设置。我需要类似于用户的环境设置,例如:email..properties,变量包含在OS环境中,或者可能在项目文件

2 个答案:

答案 0 :(得分:0)

以下是我在某些项目中的表现。我在属性文件的路径上创建了一个System Property。该路径位于项目之外,因此永远不会提交属性文件。但是为了帮助第一次运行项目的其他人,我提交了一个带有默认选项的模板属性文件。

在intellij中,我使用与我的同事不同的-D选项启动项目,并且启动选项未提交(因为我们不提交.idea文件夹)。

答案 1 :(得分:0)

结果是这样做:首先我在propject根目录中创建了属性文件夹,添加包含当前环境名称的文件env.properties(或者用户可以将其添加为JVM start paramenter -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.否则返回empy。