Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
627 views
in Technique[技术] by (71.8m points)

groovy - 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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...