Modularize Grails Application (Grails 2.3.x)

China☆狼群 提交于 2019-12-22 00:41:22

问题


I want to start my first project in Grails and I want to split in more application/plugins.

For now I have only one site/application (/myproj/projectA). In the future I want to add a new application (/myproj/projectB) and I want to reuse some of logic of projectA (Ex. UserService).

In Grails, what is the way? Create 2 applications (projectA, projectB) and one common (ex.with UserService) plugin?

How do it?

The final result is : I want to update single application without redeploy entire application.

Thanks in advance


回答1:


Creating reusable/shared functionality is one of the key advantages of Grails as a development framework. You definitely should be thinking of modularization of your functionality from the beginning and designing for plugin creation and use.

As you surmised, you use grails plugins for this purpose. We have developed an internal ecosystem that consists of (currently) some 30 plugins, each of which provides a specific piece of functionality. We have also carried forward some of the patterns visible in Grails plugins such that base functionality (domains and services) are held separate from user interface (controllers, taglibs and views). For example we have the following plugins:

arkCore - Core datatypes, domains and services
arkComponents - Common UI controls
arkDocument - Document management datatypes, domains and services
arkDocumentUi - Document management user interface

In this case arkDocument is dependent on arkCore and arkDocumentUi is dependent on arkDocument and arkComponents.

Grails can create either application or plugin projects. My recommendation is to

  1. Develop your functionality in one application to begin with.
  2. Get it working in some basic form.
  3. Create a plugin project and move all of the relevant artefacts from the application into the plugin.
  4. Publish the plugin to a local repository.
  5. Update project BuildConfig.groovy to reference the plugin the same as any other Grails plugin.

You will need to do the following things to get familiar with using plugins:

  • Read and understand the plugins section of the Grails documentation
  • Get and install Artifactory as a private plugin repository for your development. If it is just you, then you might just consider using the local Maven repository and using maven-install rather than publish-plugin.
  • Look at some of the third party developed plugins for examples. They are generally very straightforward.


来源:https://stackoverflow.com/questions/25811453/modularize-grails-application-grails-2-3-x

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!