Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Apply gradle custom jar plugin

I've created a simple groovy-based plugin for gradle.

in my gradle.build file I have the following:

apply plugin: 'groovy'

dependencies {
    compile gradleApi()
    compile localGroovy()
}

Everything works great, I get a build directory and a .jar is generated in the lib folder, I guess this is the standalone plugin.

Now I want to know how to register this new plugin into my gradle instalation, so I can do apply plugin: 'myPlugin' I've done the following:

  • Droped the plugin into the plugin folder in the installation
  • Created the myplugin.properties file and included it in the META-INF folder
  • placed the same properties file in the META-INF in the src dir (act of desperation)

Well after every step when I try to apply the plugin I get the error:

  • Plugin with id 'myplugin' not found

How can I get this right??

can you state a list of steps that will get my plugin working? (Im new to gradle+groovy)

Thanks for the help

like image 968
RicardoE Avatar asked May 09 '13 18:05

RicardoE


People also ask

Does Gradle build create jar?

The result JAR will be created in build/libs/ directory by default.

What does Gradlew installDist do?

You can run gradle installDist to assemble the uncompressed distribution into $buildDir/install/${project.name} .


1 Answers

The chapter 58 of the user guide has all the information you need. In summary:

  • Put your myPlugin.properties inside your project structure, in src/main/resources/META-INF /gradle-plugins/
  • Build your jar like you usually do
  • In the script you wish to use this plugin, add a buildscript closure to something like:

    buildscript {
        repositories {
            flatDir dirs: "build/libs"
        }
        dependencies {
            classpath "your.group:your-plugin:1.0.0"
        }
    }
    

Or whatever settings for repositories and dependencies you wish, but you need to use the classpath configuration as I've done here. I don't think you can (or should!) add the jar to the plugin dir of Gradle like you did.

Note: the flatDir does not resolve transitive dependencies. The same rule for dependency management applies to the buildscript, so you can use a regular maven or ivy repository to deploy your plugin.

like image 171
Pascal Gélinas Avatar answered Oct 23 '22 12:10

Pascal Gélinas