Java - 在编译时检查属性文件

时间:2015-06-11 13:34:53

标签: java maven ant properties

我今天需要你的一些意见。

我正在开发一个使用大型常量持有类的项目。

有很多

public static final String CONST_NAME = "const_value";

我正在使用MyConstClass.CONST_NAME,但现在我需要将它们外部化以配置项目。

所以我想到了两种方法:

  1. 通过多个MyConstants.java配置项目
  2. 我会用其余的java类编译其中一个。

    由于这些是常量,因此可确保编译时的安全性。

    1. 添加.properties文件
    2. 此文件将设置代码中我需要的每个常量。

      我会用MyConstants.get("CONST_NAME");

      之类的东西来获取它们

      比拥有多个java类(对吧?)更优雅,你会/不会用项目的其余部分编译。

      但它并不能确保编译时安全,这是避免某些人犯错误所必需的。

      所以这是我的问题:

      1. 是否可以检查 AT COMPILE TIME 我的{.1}}获得的所有属性是否都存在于我的.properties文件中?
      2. 有更好的方法吗?
      3. PS:

        我找到了类似oneother one这样的主题,但我认为不是这样做的。

2 个答案:

答案 0 :(得分:2)

使用自定义编译器任务等在编译时可以做各种各样的事情,但我认为它不太实用。

就个人而言,我为其值配置提供了属性键和属性文件的枚举 - 类似于:

var result:XMLList = xml.Questions.(id == 1);

if(xml.Questions.(id == 1).length() > 0)

和enum上的calling.toString()获取文本键表示。

答案 1 :(得分:1)

我同意总有办法。但我认为最简单的方法是编写一个单元测试,检查是否设置了所有配置值。这样,如果配置不完整,您可能会失败构建。