Hi, I have a custom plugin which I took from the sample in the gradle distribution.
package org.gradle
import org.gradle.api.Project
import org.gradle.api.Plugin
import
org.gradle.api.tasks.JavaExec
class GreetingPlugin implements Plugin<Project> {
void apply(Project target) {
target.task('helloInsideGreeting', type: GreetingTask)
println ' creating new dependency '
target.configurations.add("bindGen");
target.dependencies.add("compile","org.slf4j:slf4j-api:1.6.5");
target.dependencies.add("bindGen","org.jibx:jibx-tools:1.2.3");
target.dependencies.add("bindGen","org.slf4j:log4j-over-slf4j:1.6.5");
target.extensions.add("schemaObjectName", GreetingPluginExtension);
target.task('createBinding', type:JavaExec)
{
classpath target.configurations.bindGen
classpath target.sourceSets.main.output.classesDir
main = 'org.jibx.binding.generator.BindGen'
println ' what r these values '
println ' target.sourceSets.main.output.classesDir ' + target.sourceSets.main.output.classesDir
println ' target.projectDir ' + target.projectDir
println ' target.schemaObjectName.className ' + target.schemaObjectName.className
args "-w" , "-o" , "-t", "${target.projectDir}/src/main/reosurces/bindgen",
"${target.schemaObjectName.className}"
}
}
}
class GreetingPluginExtension {
//String className = "my.cool.app.Employee"
String className
}
In the above plugin I am dynamically creating an extension and using the values of the extension in the task .
In the consumer , the build.gradle is as below
apply plugin: 'java'
apply plugin: 'greeting'
//schemaObjectName.className = "my.cool.app.Employee"
schemaObjectName
{ className = "my.cool.app.Employee" }
dependencies { compile project(':my-lib') }
compileJava.doLast
{
tasks.createBinding.execute()
}
The value I set in the build.gradle is not reflecting within the task created by the plugin.
I tried the steps to create dynamic extension from the gradle document and it worked
http://www.gradle.org/docs/current/userguide/userguide_single.html#custom_plugins
The difference here is that the plugin is a standalone project. Let me know If I am doing something wrong.