Merge remote-tracking branch 'origin/eclipse-integration'

This commit is contained in:
kLeZ 2014-09-22 19:18:04 +02:00
commit 1e860374e2
3 changed files with 123 additions and 2 deletions

4
.gitignore vendored
View file

@ -27,6 +27,10 @@ pom.xml.*
.settings
.metadata
#Eclipse/Gradle integration
libs
project.properties
#IntelliJ IDEA
.idea
*.iml

View file

@ -1,9 +1,10 @@
apply plugin: 'com.android.application'
apply from: 'copyLibs.gradle' // enable 'copyLibs.gradle' script plugin
apply plugin: 'eclipse'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
applicationId "com.zeapo.pwdstore"
minSdkVersion 15
@ -23,7 +24,7 @@ repositories {
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':libraries:openpgp-api-lib')
compile 'org.eclipse.jgit:org.eclipse.jgit:3.4.1.+'
compile 'org.apache.commons:commons-io:1.3.2'
@ -31,3 +32,8 @@ dependencies {
transitive = true
}
}
tasks.findAll { // make all tasks whose name starts with 'assemble'...
it.name.startsWith 'assemble'
}.each { // ... depending on 'copyDependenciesIntoLibs' task from 'copyLibs.gradle' script plugin
it.dependsOn copyDependenciesIntoLibs
}

111
app/copyLibs.gradle Normal file
View file

@ -0,0 +1,111 @@
class CopyJars extends DefaultTask {
@InputFiles
FileCollection source
@OutputDirectory
File destination
@TaskAction
void apply() {
project.copy {
from source
into destination
}
}
}
class ExtractAars extends DefaultTask {
@Input
boolean extractJarsOnly = false
@InputFiles
FileCollection source
@OutputDirectory
File destination
@TaskAction
void apply() {
source.each { File file ->
def baseFilename = file.name.lastIndexOf('.').with {
it != -1 ? file.name[0..< it] : file.name
}
if (extractJarsOnly) {
project.copy {
from project.zipTree(file)
include 'classes.jar'
into destination.name
rename {
String fileName -> fileName.replace('classes.jar', baseFilename + '.jar')
}
}
} else {
project.copy {
from project.zipTree(file)
exclude 'classes.jar'
into destination.absolutePath + File.separator + baseFilename
}
project.copy {
from project.zipTree(file)
include 'classes.jar'
into destination.absolutePath + File.separator + baseFilename +
File.separator + destination.name
rename {
String fileName -> fileName.replace('classes.jar', baseFilename + '.jar')
}
}
}
}
}
}
task ('copyJarDependenciesIntoLibs', type: CopyJars) {
description = 'Used for Eclipse. Copies JAR dependencies to the libs directory.'
destination = file(project.projectDir.canonicalPath + File.separator + 'libs')
afterEvaluate {
source = files(
project.configurations.matching {
it.name.endsWith 'Compile' or it.name == 'compile'
}.each {
logger.info "Adding dependencies from ${it.name} configuration."
}
).filter {
it.name.endsWith 'jar'
}
logger.info source.files.toString()
}
}
task ('extractAarDependenciesIntoLibs', type: ExtractAars) {
description = 'Used for Eclipse. Extracts AAR dependencies into the libs directory.'
destination = file(project.projectDir.canonicalPath + File.separator + 'libs')
afterEvaluate {
source = files(
project.configurations.matching {
it.name.endsWith 'Compile' or it.name == 'compile'
}.each {
logger.info "Adding dependencies from ${it.name} configuration."
}
).filter {
it.name.endsWith 'aar'
}
logger.info source.files.toString()
}
}
task copyDependenciesIntoLibs {
dependsOn copyJarDependenciesIntoLibs, extractAarDependenciesIntoLibs
description = 'Used for Eclipse. Copies JAR and extracts AAR dependencies into the libs ' +
'directory.'
}