【问题标题】:How to setup local dependency in grails plugin (classpath to the main app)?如何在 grails 插件中设置本地依赖项(主应用程序的类路径)?
【发布时间】:2009-12-11 20:59:47
【问题描述】:

我有一个 Grails 应用程序,其中包含主应用程序及其在 BuildConfig.groovy 中链接的本地模块:

grails.plugin.location.'mymodule' = "modules/mymodule"

在 mymodule 中,我想使用主应用程序中的 Helper 类,但是我找不到任何方法来使 mymodule 依赖于主应用程序。我正在考虑为 mymodule compile 添加一些额外的部分到类路径中,但我被困在这里。

知道怎么做吗?

【问题讨论】:

    标签: grails dependencies grails-plugin


    【解决方案1】:

    你不能做你想做的事,至少不容易。它是首先编译的插件的单向依赖项。唯一的方法是在您的插件中创建一个您可以注册的回调机制。这样,您的应用将向插件注册自身,插件将在需要时调用这些类。

    将插件及其依赖项视为 jar - 您不能从某个库下载 jar 并期望它调用您的代码,除非它是这样设计的。

    如果您有辅助类,假设它们不依赖于您的主应用程序中的任何内容,我建议您将它们从主应用程序移至本地插件所依赖的单独插件。这样,您的主应用程序和本地插件都依赖于帮助程序类。或者只是首先将帮助程序类移动到插件 - 然后它们将可用于插件和主应用程序。

    【讨论】:

    • 是的,这是只有一个模块的应用程序的解决方案,但如果我需要应用程序中的更多模块并且所有模块都应该使用同一个帮助程序类怎么办?
    • 同样适用。您必须有一个在任何其他模块之前首先编译/加载的模块/插件(您可以在插件定义文件中使用 dependsOn 和 loadAfter 强制执行顺序),或者您必须能够为所有模块执行回调。这是定义依赖项的文档 - grails.org/Plugin+Dependencies
    【解决方案2】:

    让我看看我是否遵循 - 在他的设置中(我的设置相同),您将编辑 application.properties 以将共享插件作为依赖项包含在本地插件和核心应用程序中 - 这是最佳实践吗?插件会“安装两次”吗?它似乎安装在两个位置

    我只是想在核心应用和几个本地插件中使用 spring 安全插件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-03
      • 1970-01-01
      • 2011-12-16
      • 2017-11-23
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多