According to documentation is not possible to call tasks of composite build directly:
https://docs.gradle.org/current/userguide/composite_builds.html#composite_build_executing_tasks
There is not (yet) any means to directly execute a task from an included build via the command line.
But why?
If I have includeBuild("plugin")
Why I cannot simply call for example gradlew :plugin:publishToMavenLocal
as for any other model?
I need one simple thing. To have a project where will be Gradle plugin as module plugin
and several samples project which will directly use plugin
module as GradlePlugin. But I still need to publish plugin
to artifactory as a normal plugin.
While not without some limitations, here’s what I’ve used as a workaround for now
tasks.addRule( 'Pattern: <included build>%<task>' ) { String taskName ->
if( taskName.contains( '%' ) ) {
def parts = taskName.split( '%' )
if( parts.size() != 2 ) {
throw new RuntimeException( "Invalid included build task reference '${taskName}'" )
}
task( taskName ) {
dependsOn gradle.includedBuild( parts[0] ).task( ":${parts[1]}" )
}
}
}
1 Like
Wow, thanks, interesting thing. And where exactly you have it?
I’m currently using a different hack via buildSrc described here
Plugin project with samples in one repository?
It works completely fine from command line but IDEA has some issues to open it 
I have it in the build.gradle
of a composite build.