How to run a local plugin in Grails 2.0?
Asked Answered
G

5

18

In Grails, there is a variant how to include local plugin from sources. According to docs, one may type in BuildConfig.groovy:

// Useful to test plugins you are developing.
grails.plugin.location.shiro =
        "/home/dilbert/dev/plugins/grails-shiro"

// Useful for modular applications where all plugins and
// applications are in the same directory.
grails.plugin.location.'grails-ui' = "../grails-grails-ui"

The problem is that it doesn't work in Grails 2.0.RC1. I've tried to do grails clean, to install plugin with grails install-plugin and to place it to BuildConfig.groovy. Still unable to resolve.

Googins answered 16/11, 2011 at 13:8 Comment(3)
What error do you get? I just tried the BuildConfig route, with 2.0RC1 and it seems to work fine... You are doing one or the other aren't you? Not grails install-plugin AND placing it in BuildConfig.groovy at the same time?Onetime
That was damn simple. With this grails.plugin.location.* line you just shouldn't install plugin at all. Just type this lint in BuildConfig.groovy and do grails run-app!Googins
I was trying to install-plugin or put it into BuildConfig DSL the same time :) thanks @OnetimeGoogins
W
22

This works for me

grails.plugin.location.shiro = "/home/dilbert/dev/plugins/grails-shiro"

Where shiro is the name of the plugin (not the name of the directory it's in). Make sure the path to the plugin is either an absolute path or the relative path to the plugin from the application.

I've found that this sometimes doesn't work if the plugin is listed in application.properties or BuildConfig.groovy, so if it is, remove it, then execute grails clean and restart the app.

Wines answered 16/11, 2011 at 14:2 Comment(1)
This method works for me by adding to the buildConfig.groovy. +1 to @andruso for his comment concerning dashes. If your plugin contains a hyphen, then wrap the plugin name in quotes. Example: grails.plugin.location.'plugin-name-with-dashes' = "<path>"Begorra
R
8

You can also install the plugin into your local maven cache.

The documentation speaks about this:

3.7.10 Deploying to a Maven Repository

maven-install

The maven-install command will install the Grails project or plugin artifact into your local Maven cache:

grails maven-install

This has the advantage of allowing you to include the plugin in your parent application using the more common ":plugin-name:version" syntax

Which allows your application to determine the best place to retrieve the plugin when in production. From an internal maven-repo or equivalent.

Ridenour answered 12/2, 2014 at 2:5 Comment(0)
C
3

With Grails 3.x there is another way to do this. Suppose you've a grails app and plugin (source code) inside the same project directory:

/my-project
---/my-app
---/grails-shiro

To run your local plugin, you must create a settings.gradle file in the my-projectdirectory specifying the location of your application and plugin:

 include 'my-app', 'grails-shiro'

Then add the dependency in your application's build.gradle:

 compile project(':grails-shiro')

You've done.

Look at the plugins documentation for more information.

Covington answered 13/9, 2015 at 8:56 Comment(0)
T
2

Surround the plugin name with quotes in case it contains dashes:

grails.plugin.location.'plugin-name-with-dashes' = "<path>"
Trusteeship answered 5/2, 2015 at 15:28 Comment(0)
B
0

You can add the .zip file for the plugin in your /lib and it will be installed.

Example:

compile ":myPlugin:1.0"

File:

/lib/myPlugin-1.0.zip

Note: You have to zip the content of the plugin folder.

Source: http://grails.1312388.n4.nabble.com/Insert-own-local-plugin-into-build-config-td4646704.html

Britishism answered 12/2, 2014 at 1:3 Comment(1)
This is not effective as you would have to zip and replace the file every time an update is done. Forget this step and you'll be tracking down some really confusing problems.Stacy

© 2022 - 2024 — McMap. All rights reserved.