Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        5年前关闭。
                                                                                            
                
        
我正在为家庭自动化系统开发基于Java的框架。此家庭自动化系统的要求之一是,开发人员应该能够轻松扩展功能。我认为简化事情的一种好方法是允许开发人员创建一个描述外围设备功能的简单XML文件。即它可以处理的命令和可以广播的事件。 (类似于假发Wag:http://www.kickstarter.com/projects/wigwag/wigwag-scan-it-control-it-rule-it-share-it等系统中的WHEN和THEN事件)

我想解析开发人员提供的XML文件,并自动生成Java代码以与系统的其余部分进行交互,就像Google在Android SDK中使用其R.java文件所做的那样。 (我意识到这是由APT而非Eclipse处理的)
我看过的一些解决方案:


Eclipse Java Emitter模板(JET)-JET的使用非常复杂,文档非常少/根本不存在。我得到它是使用generate()方法生成Java实现文件的,但是我找不到如何使IDE生成模板中定义的Java代码的方法。
我尝试了本教程:https://weblogs.java.net/blog/survivant/archive/2009/01/template_code_g.html,但无法使Car示例工作;我收到此错误:



  
    
      
        构建期间发生错误。
        
        在项目“ JETTest”上运行构建器“ JET Builder”时出错。
        
        第1行第1列的'main.jet'中的错误指令
        
        第1行第1列的'main.jet'中的错误指令
        
        第1行第1列的'main.jet'中的错误指令
        
        第1行第1列的'main.jet'中的错误指令
      
    
  



JAXB-这似乎更适合于编组/解组Java对象,但不能解决我的问题
ANT编译器-我得到了它来生成一个类,但是它并不是我想要的那么灵活(例如,我希望能够从开发人员定义的XML中获取包名称,但是输出目录是在ANT中静态分配的, cc>文件。)
Apache Velocity-瞥了一眼,但我已经对JET感到沮丧,并且通过粗略检查似乎不是一个很好的解决方案。 (我很高兴被证明是错误的:)


到目前为止,ANT解决方案对我来说一直是最好的,因为它实际上可以工作,但是我喜欢JET,因为它似乎工作起来最流畅。

现在我的问题。我应该只使用ANT,还是JET更好呢?此外,如果JET更好,有人可以指出一个简单的教程,但它并不完全过时吗?

最佳答案

我是这样看的 -
使用更容易使用的框架或工具。更重要的是要有好的文档。因此,ANT似乎是您最好的选择。

但是,我是否可以建议其他替代方法-Groovy模板。
http://groovy.codehaus.org/Groovy+Templates

可以完成相同的工作,但是使用起来确实很简单,并且文档很好。我们在公司中使用它来转换某些旧系统的订单。

关于java - 框架的Java代码生成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21316443/

10-10 07:05