【问题标题】:How to export/share freemarker macro?如何导出/共享 freemarker 宏?
【发布时间】:2016-05-08 08:03:44
【问题描述】:

我想用 maven <packaging>jar</packaging> 导出一个 jar。在另一个项目中添加对该 jar 的依赖后,我可以import 宏。

怎么做?

编辑:

使用 java,我可以将 com.example.a 导出到 jar 文件中,并在 com.example.bimport 中使用它。我想要 freemarker 的类似功能。

我用关键字package, bundle, export, module 搜索,但没有任何运气。我认为这应该是一个非常常见的情景。我真的不知道如何详细说明。

【问题讨论】:

  • 你能详细说明一下吗?
  • @GautamSavaliya 我已经尽力了。

标签: freemarker


【解决方案1】:

如果您的ConfigurationTemplateLoader 看到这些资源,您可以像以前一样只使用#import/#include 它们。通常你需要一个MultiTemplateLoader,然后添加你的“普通”TemplateLoader(它加载特定于应用程序的FTL-s),还有一个ClassTemplateLoader,它指向包含重用的FTL-s的包。

【讨论】:

  • 我应该把模板放在哪里,以便其他项目可以看到?我只在我的 jar 中找到 java 类。
  • Jars 可以并且经常包含任意文件(资源)以及.class 文件。因此,您可以将 .ftl 文件存储在与所需 java 包对应的子目录中。
  • 我这样做了,而且我的 jar 中只有 .java。你能给我看一下目录结构应该是怎样的屏幕截图吗?
  • 你的 jar 中不应该有 .java 文件,而应该有 .class 文件,在这种情况下是 .ftl 文件。例如,在你的 jar 中你可以有com/example/myproject/commons/templates/my-commons.ftl,然后你有那个 jar 作为依赖,所以如果你在模板加载器中有new ClassTemplateLoader(..., "com/example/myproject/commons/templates"),那么你可以发出<#import '/my-commons.ftl' as my>。至于如何生成这样的jar文件,请参考您使用的构建工具的文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 2016-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多