apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' configurations { eclipseCompile } dependencies { compile project(':vtm') provided files("${rootDir}/vtm-ext-libs/native-libs.jar") compile 'com.android.support:support-v4:21.+' eclipseCompile project(':appcompat') } android { compileSdkVersion androidTargetSdk() buildToolsVersion = "$androidBuildVersionTools" sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } debug.setRoot('build-types/debug') release.setRoot('build-types/release') } lintOptions.abortOnError false } task sourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.srcDirs } artifacts { archives sourcesJar } eclipse { classpath { plusConfigurations += [ configurations.compile, configurations.eclipseCompile ] //noExportConfigurations += [ configurations.provided ] //customizing the classes output directory: defaultOutputDir = file('bin/classes') containers = ['com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES', 'com.android.ide.eclipse.adt.DEPENDENCIES'] file { // Manipulation of the classpath XML before merging local // and generated copies beforeMerged { classpath -> // Remove all source entries to avoid overlap classpath.entries.removeAll() { e -> e.kind == 'src' } } // only used to explode jni .so into aar whenMerged { classpath -> classpath.entries.findAll { e -> e.path.contains('native-libs') || e.path.contains('ANDROID_FRAMEWORK') }*.exported = false classpath.entries.removeAll() { e -> e.path.contains('support') } } // Direct manipulation of the generated classpath XML withXml { // Since non-default source directories are used // they need to be manually added to the classpath XML def node = it.asNode() // Main source directory and generated code directory node.appendNode('classpathentry kind="src" path="src"') node.appendNode('classpathentry kind="src" path="gen"') } } } project { natures = ['com.android.ide.eclipse.adt.AndroidNature', 'org.eclipse.jdt.core.javanature'] buildCommand 'com.android.ide.eclipse.adt.ResourceManagerBuilder' buildCommand 'com.android.ide.eclipse.adt.PreCompilerBuilder' buildCommand 'com.android.ide.eclipse.adt.ApkBuilder' // use extracted jni .so in eclipse linkedResource name: 'libs', type: '2', locationUri: 'PARENT-1-PROJECT_LOC/vtm-ext-libs/vtm-android' } } android.libraryVariants.all { variant -> def name = variant.buildType.name if (name.equals("debug")) { print "Skipping debug jar" return; // Skip debug builds. } def task = project.tasks.create "jar${name.capitalize()}", Jar task.dependsOn variant.javaCompile task.from variant.javaCompile.destinationDir artifacts.add('archives', task); }