Буркан за експортиране на 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)

Но вътре в буркана не са включени библиотеките, които използвам в библиотеката на моя проект. С 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