【问题标题】:How to properly use grails plugins如何正确使用 grails 插件
【发布时间】:2017-01-17 03:55:18
【问题描述】:

我们开发了一个 grails 应用程序以及许多 grails 插件。这些 grails 插件作为 jar 包含在主应用程序中。我们维护了一个工件,用于发布我们的插件 jar。 现在我们在这种方法中面临着许多问题。

问题一:

每当我们需要对插件进行更改时,我们都必须转到插件项目,然后对其进行编译、发布,然后在主应用程序中升级 jar 版本。当我们有许多项目时,这个过程会变得非常乏味。 我们正在使用 intellij 进行开发。有什么我们可以做的,即我们打开我们的项目以及我们的插件,然后在不发布单个插件的情况下测试所有内容。当测试完成时,gradle 构建将自动发布这些插件 jar /p>

问题 2 ==>(与问题 1 有关)

我们有一个 grails 3.0.10 应用程序,我们正在尝试将其升级到 3.1.11 版本。在我们的应用程序中,我们使用了许多 grails 插件,这些插件也是用 grails 3.0.10 编写的。当我们尝试将主应用程序升级到 3.1.11 时,插件中会出现一些错误。 这个问题的一种解决方案是遍历每个插件并在 grails 3.1.11 中编译它们。但是我们想知道是否有任何其他选项可用,以便我只需要更新我的主应用程序。

【问题讨论】:

  • 您应该认真考虑设置 Jenkins 或其他东西来管理构建过程和代码中的 grails 版本检查,然后让构建过程为您完成所有构建。听起来很乏味的原因是因为它是一个手动过程。你甚至可以编写脚本。无论 3.0 和 3.1 之间有什么变化,都需要重新编译插件。

标签: grails intellij-idea gradle grails-plugin


【解决方案1】:

Grails 确实支持内联插件。

这意味着,在 Grails 应用程序旁边的磁盘上,您有一些 Grails 插件的源代码。

假设您的自定义插件的名称是“my-test-plugin”,请在应用的 BuildConfig.groovy(文件结构的顶层)中放置类似这样的内容:

grails.plugin.location.'my-test-plugin' = '../custom_plugins/my-test-plugin'

当然也禁用固定版本的插件依赖。

这样,您可以临时调整 buildconfig(当您正在积极开发插件时)并在发布新版本的插件时立即恢复它。

或者,您可以这样保留它,但在这种情况下,您应该找到每个团队成员都必须使用的路径约定(或者每个人都必须调整 buildconfig 中的相对/绝对路径并且不应该提交)

希望对你有帮助

编辑:我的答案仅适用于 Grails 1.x 和 2.x

对于 Grails 3 内联插件,请参阅 Adding in-place plugin to grails 3 project

【讨论】:

  • 我已经检查了该链接,这将通过在 build.gradle 中添加编译项目来解决我的测试问题,但是当测试完成后,我必须发布插件并更改应用程序 build.gradle 然后部署战争。文档没有说明如何部署该应用程序
  • 内联插件方法完全绕过了所包含插件的任何发布周期。因此,它非常适合积极开发。每当我编辑插件时,我都会使用内联插件机制。但是一旦我对更改感到满意,我就会恢复内联定义,定义新版本号,发布插件(手动到工件)并在主项目中使用新版本号作为插件依赖项。
  • 发布插件、发布它们、然后重新排列依赖项并构建项目的自动脚本将是一个完全不同且更复杂的任务,恕我直言,它应该在专用服务器上运行(例如 jenkins )。
猜你喜欢
  • 2014-02-25
  • 1970-01-01
  • 1970-01-01
  • 2020-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-16
  • 2014-08-22
相关资源
最近更新 更多