Экспортная банка Android Studio с зависимостями

У меня была библиотека проекта в Eclipse с Maven, и сгенерированная банка включала в себя некоторые зависимости библиотек. Теперь я перехожу на Android Studio и хочу создать такую ​​же банку. Я могу создать банку со следующими строками в gradle:

task clearJar(type: Delete) {
  delete 'build/libs/mysdk.jar'
}

task makeJar(type: Copy) {
  from('build/intermediates/bundles/release/')
  into('release/')
  include('classes.jar')
  rename ('classes.jar', 'mysdk.jar')
}

makeJar.dependsOn(clearJar, build)

Но внутри jar не включены библиотеки, которые я использую в своей библиотеке проекта. С Maven я могу использовать «предоставленную» область, чтобы включать или не включать библиотеку в мою банку, но с gradle... как я могу это сделать?

Спасибо


person esteban    schedule 11.12.2014    source источник


Ответы (1)


Решил со следующими задачами:

task jarTask(type: Jar) {
 baseName="my-sdk-android"
 from 'src/main/java'
}

task createJarWithDependencies(type: Jar) {
  baseName = "my-sdk-android-jar-with-dependencies"

  from {
    configurations.compile.collect {
        it.isDirectory() ? it : zipTree(it)
    }

  }

  with jarTask
}

configurations {
  jarConfiguration
}

artifacts {
  jarConfiguration jarTask
}
person esteban    schedule 15.12.2014
comment
Ты крут, приятель. Спас день. Просто чтобы уточнить, вам нужно запустить gradlew createJarWithDependencies, и вывод будет в /build/outputs/libs - person Elad Nava; 22.03.2015
comment
Не могли бы вы помочь мне с ответом выше, я не получаю вывод желания - person Android Team; 11.09.2015
comment
Это не работает для меня. Исходные файлы включены как есть, а не в скомпилированном виде, как в случае с «Экспортом..» в eclipse. - person devanshu_kaushik; 30.12.2015
comment
Не удается найти мои исходные файлы (файлы .java). не могли бы вы дать мне решение, что я делаю неправильно? - person Kinjal Shah; 28.07.2016
comment
пожалуйста, вы можете проверить этот вопрос? stackoverflow.com/questions/39036702/ - person Universe; 20.08.2016
comment
Работает отлично. Но это не применение proguard. Любая идея, как использовать proguard? - person nizam.sp; 01.11.2016
comment
@nizam.sp Куда вы добавляете эти строки? - person Alan; 16.11.2016
comment
Хотя это работает as advertised, я не планировал упаковывать свои java файлы с зависимыми jar файлами. Я планировал упаковать мои файлы class с зависимыми файлами jar. -- буду искать; но спасибо за эти подсказки. - person Jesse Chisholm; 17.11.2016
comment
@Alan - re: where do you add these lines? как структуры верхнего уровня; так что чуть ниже раздела dependencies { ... }. - person Jesse Chisholm; 17.11.2016
comment
@JesseChisholm Ниже раздела зависимостей. - person esteban; 17.11.2016
comment
Измените from 'src/main/java' на from 'build/classes/main', и он упакует файлы .class вместо файлов .java. - person Octocat; 26.12.2016