【发布时间】:2013-02-06 09:25:43
【问题描述】:
很多项目都在使用配置文件和 我发现了很多帖子如何阅读此配置文件,如何将它们外部化,但我找不到有关如何生成示例配置文件的任何信息。
例如,如果您有一个包含各种配置属性的 company.config 文件,我希望自动生成一个 company.sample.config 文件每次构建项目时从我的源代码中获取。此示例文件应包含项目使用的所有配置属性,以及默认值和 cmets。
我使用 Java 和 Gradle,所以我正在考虑一个 Gradle 插件。
那里有这样的东西吗?其他人是如何解决这个问题的?
稍后编辑:一些例子:
public class CompanyConfig {
private static final String PROPERTY1_DEFAULT = "Company.property1_default";
private static final String PROPERTY2_DEFAULT = "Company.property2_default";
/**
* description 1
*/
private static final String PROPERTY1 = "Company.property1";
/**
* description 2
*/
private static final String PROPERTY2 = "Company.property2";
private Config config;
public CompanyConfig(Config config) {
this.config = config;
}
public String getProperty1() {
return config.getProperty(PROPERTY1, PROPERTY1_DEFAULT);
}
public String getProperty2() {
return config.getProperty(PROPERTY2, PROPERTY2_DEFAULT);
}
}
根据上述代码,sample.conf 文件应如下所示:
**description 1
*Company.property1=Company.property1_default
**description 2
*Company.property2=Company.property2_default
这样,我可以把sample.conf文件交给想配置项目的人。这个人不知道我项目中的配置属性,所以他/她需要一个属性列表和每个属性的默认值。而且由于引入了新的人员并删除了其他一些人员,因此必须在每次构建时生成示例文件。
希望这能澄清我在这里问的问题。
【问题讨论】:
-
标准 java.util.Properties 提供了一种将 Properties 实例写入带有注释的 OutputStream 的方法(请注意,不是每个属性的注释)。
-
我想要一些自动的东西:解析我的代码并提取属性名称和默认值。这必须是某种插件。
-
如何识别代码中的所有配置属性?
-
嗯,这就是问题所在。我在考虑注解或一些约定:Config 类应该有一个特定的模式(ConfigImpl),并且字段也应该有一个特定的模式(_Property)......或者像这样。可能还有其他解决方案。
标签: java properties groovy configuration-files gradle