【问题标题】:Tool to generate C++, Java, XML from a template从模板生成 C++、Java、XML 的工具
【发布时间】:2013-06-01 20:15:05
【问题描述】:

我正在寻找一种工具,可以让我:

  • 使用可替换的字符串定义代码模板。示例 - <NAMESPACE> 可以替换:

    jclass pJNIActivityClass = pJNIEnv->FindClass("<NAMESPACE>");

  • 基于正则表达式自动插入代码 sn-p。示例 - 将在 //##:

    处插入新代码
    public void onCreate ( Bundle savedInstanceState ){
        super.onCreate  ( savedInstanceState ) ;
        //##
    

我发现的现有工具是特定于语言的。我真的不需要该工具来理解特定语言,尽管如果它可以解析 XML,它会让生活更轻松。

对于一些背景。我在闭源应用程序导出 Eclipse 或 Visual Studio 项目(Android 或 Windows)的环境中工作。除了项目命名空间之外,此导出的代码始终相同。

这里的想法是能够在这些库存导出的项目上运行一个工具,以自动执行常见的额外功能。

【问题讨论】:

  • 是否可以接受商业解决方案,或者您想要免费或开源的东西?
  • FOSS 总是不错,但如果值得我花时间,我愿意付钱。

标签: android c++ java-native-interface code-generation template-engine


【解决方案1】:

对于 FOSS 解决方案,您应该查看来自 Eclipse 基金会的Acceleo。它使用像 UML 这样的语言作为输入,并允许您为任何基于文本的语言生成输出。它在大小和功能方面可能有点重,并且需要安装 Eclipse,但它非常擅长代码生成。它还可以很好地处理大型和复杂的模板源,并提供您期望在 IDE 中具有的功能类型。我只使用过旧版本,但我的体验很好。

如果您无法找到 FOSS 解决方案并且可以接受商业解决方案,我推荐 EntiPro。我使用它已经有一段时间了,但我对它的体验非常是积极的。它功能强大且灵活,似乎满足您在问题中概述的要求。单座开发者许可证也很便宜,只需 40 美元。

如果您无法找到 FOSS 解决方案或不想在 EntiPro 上花费 40 美元,您可能需要自行实施解决方案。如果结果是这样,我强烈建议使用 Terrance Parr 的 String Template Engine

【讨论】:

  • 正是我想要的答案!
【解决方案2】:

Telosys 是一个开源代码生成器,您应该尝试一下:http://www.telosys.org/

它使用基于Velocity的模板引擎,因此非常适合“带有可替换字符串的代码模板”的需求

【讨论】:

    猜你喜欢
    • 2013-02-06
    • 2011-12-06
    • 2011-03-13
    • 2017-10-17
    • 2014-08-23
    • 2011-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多