我正在编写一个需要大量静态数据的Java应用程序,这些数据存储在许多枚举类型中。因为我想用一种用户友好的方式来使用例如xml或json文件来自定义这些数据,但是我不允许直接用枚举来实现它,我正在寻找一种优雅的方法。
也许一个好的解决方案是拥有一个单独的java程序来读取xml文件并生成java源代码,然后使用其余部分源代码编译。我的doubs是如何以独立的方式自动化这个过程(例如ant?)以及如何将它与eclipse无缝集成,以便在我使用项目时自动完成它。有什么类似于我的东西看起来已经存在?有什么建议可以解决我的问题吗?
谢谢!
答案 0 :(得分:2)
如果项目和整体结构以某种方式固定(并且最多的是属性的值),您可以考虑使用每个项目的一个条目定义枚举,并让枚举用数据填充其自己的常量从外部源(XML / JSON)读取 - 在加载时或按需读取。
答案 1 :(得分:1)
创建一个项目,其唯一的工作是从您的源生成java。 确保生成阶段由Ant完成。
现在,将此项目包装到eclipse中并使用自定义ant构建器,该构建器在您现有的build.xml
中调用目标。
这是我们开发基础设施的标准部分,所以这绝对有效。
答案 2 :(得分:1)
你可以让ant与eclipse无缝集成,以实现:
在Eclipse打开项目属性中,转到“Builders”,单击“New ...”,选择“Ant Builder”,选择一个构建文件,转到“Targets”选项卡,然后单击“Set Targets ...” “自动构建”。选择所需的目标,您就完成了。每次保存源文件时都会运行目标(如果选择“自动构建”)。
答案 3 :(得分:1)
您可以编写一个生成代码的maven插件。有一些插件可以做到这一点。它不会自动运行,但您可以将其连接到标准maven生命周期,以便在编译之前执行。 我最近做了类似的事。
答案 4 :(得分:0)
您是否考虑过在您的jar中包含XML文件,并在启动时将它们加载到使用枚举作为键的地图中?