apply plugin: com.google.gradle.osdetector.OsDetectorPlugin subprojects { proj -> proj.afterEvaluate { // Used to generate initial maven-dir layout task "create-dirs" { description = "Create default maven directory structure" doLast { sourceSets*.java.srcDirs*.each { it.mkdirs() } sourceSets*.resources.srcDirs*.each { it.mkdirs() } } } } } // Script to create a copy of the protobuf compiler jar in the top-level build directory // (will make it easier to configure the intellij protobuf plugin) repositories { mavenLocal(); mavenCentral(); } project.ext.protocLocation = 'com.google.protobuf:protoc:3.+' // Copied from Google's protobuf plugin code File getProtocDep(protocLocation) { // create a project configuration dependency for the artifact Configuration config = project.configurations.create("protobufToolsLocator") { visible = false transitive = false extendsFrom = [] } def groupId, artifact, version (groupId, artifact, version) = protocLocation.split(":") def notation = [group: groupId, name: artifact, version: version, classifier: project.osdetector.classifier, ext: 'exe'] Dependency dep = project.dependencies.add(config.name, notation) File file = config.fileCollection(dep).singleFile return file } task getprotoc(type: Copy) { from getProtocDep(project.ext.protocLocation) rename { file -> return "protoc" } into "${buildDir}/" }