apply plugin: 'java-library' group 'com.smartdevicelink' version new File(projectDir.path, ('/../../VERSION')).text.trim() ext { VERSION_NAME = "$project.version" } sourceCompatibility = 1.7 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.vanniktech:gradle-maven-publish-plugin:0.13.0' } } repositories { google() mavenCentral() } // This extraLibs solution is explained here: https://discuss.gradle.org/t/how-to-include-dependencies-in-jar/19571/5 configurations { // configuration that holds jars to include in the jar extraLibs } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' extraLibs fileTree(dir: 'libs', include: ['*.jar']) extraLibs 'org.mongodb:bson:4.0.5' extraLibs 'androidx.annotation:annotation:1.1.0' extraLibs 'org.java-websocket:Java-WebSocket:1.3.9' //extraLibs 'com.livio.taskmaster:taskmaster:0.4.0' configurations.api.extendsFrom(configurations.extraLibs) } sourceSets { main.java.srcDirs += '../../base/src/main/java' main.java.srcDirs += '../../javaSE/javaSE/src/main/java' } jar { dependsOn 'generateSources' from { configurations.extraLibs.collect { it.isDirectory() ? it : zipTree(it) } } } task generateSources { outputs.upToDateWhen { false } File outputDir = file("$buildDir/../../../javaSE/javaSE/src/main/java/com/smartdevicelink/") outputs.dir outputDir doFirst { println "Generating BuildConfig.java ..." def srcFile = new File(outputDir, "BuildConfig.java") srcFile.parentFile.mkdirs() File license = new File("$buildDir/../../../LICENSE") if (license.exists()) { srcFile.write("/*\n") def lines = license.readLines() for (line in lines) { srcFile.append("* ") srcFile.append(line) srcFile.append("\n") } srcFile.append("*/\n") }else{ srcFile.write("\n") } srcFile.append( """package com.smartdevicelink; // THIS FILE IS AUTO GENERATED, DO NOT MODIFY!! public final class BuildConfig { public static final String VERSION_NAME = "$project.version"; }""") } } apply plugin: "com.vanniktech.maven.publish"