Несколько постов назад я говорил о том, как использовать gradle для передачи aar в maven central . Если вы помните, нам пришлось изменить некоторые файлы и так далее, но работа, которую мы должны сделать, помогает другим разработчикам упростить их разработку, когда они хотят использовать наш код / библиотеку. Когда наш код помещается в maven central как aar, мы можем повторно использовать его как libray, просто устанавливая зависимость gradle .
Например, если мы хотим использовать Weatherlib, мы должны написать:
1
2
3
4
5
|
dependencies { compile fileTree(dir: 'libs' , include: [ '*.jar' ]) compile 'com.android.support:appcompat-v7:19.+' compile 'com.survivingwithandroid:weatherlib:1.3.1' } |
Очень простой!
В любом случае, это правда, если мы используем Android Studio, но что если мы используем Eclipse или что-то еще? В некоторых случаях проще иметь классический jar-файл, который можно импортировать в наш проект Eclipse, и добавить в него jar-зависимость в нашем проекте.
Если мы используем Android Studio, этот jar создать нелегко (AFAIK), и мне пришлось немного изменить build.gradle
чтобы создать jar. Я посмотрел в сети и нашел решение, которое я заново адаптировал, чтобы мы могли повторно использовать информацию, хранящуюся в файле свойств. Если вы помните из поста об aar и gradle (если не смотрите здесь ), есть два файла свойств, которые я покажу для простоты:
1
2
3
|
POM_NAME=Android Weather Library POM_ARTIFACT_ID=weatherlib POM_PACKAGING=aar |
и
01
02
03
04
05
06
07
08
09
10
11
12
13
14
|
VERSION_NAME= 1.3 . 1 VERSION_CODE= 6 GROUP=com.survivingwithandroid POM_DESCRIPTION=Android Weather Lib POM_URL=https: //github.com/survivingwithandroid/WeatherLib POM_SCM_URL=https: //github.com/survivingwithandroid/WeatherLib POM_SCM_CONNECTION=scm:git @github .com:survivingwithandroid/weatherlib.git POM_SCM_DEV_CONNECTION=scm:git @github .com:survivingwithandroid/weatherlib.git POM_LICENCE_NAME=The Apache Software License, Version 2.0 POM_LICENCE_URL=http: //www.apache.org/licenses/LICENSE-2.0.txt POM_LICENCE_DIST=repo POM_DEVELOPER_ID=survivingwithandroid POM_DEVELOPER_NAME=Francesco Azzola |
Поэтому я хотел бы использовать эту информацию для создания банки с именем, равным POM_ARTIFACT_ID в сочетании с VERSION_NAME, и этот файл должен быть создан в определенном каталоге. Поэтому мы должны добавить в раздел Android в build.gradle
:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
|
android { ... sourceSets { main { java { srcDir 'src/main/java' } resources { srcDir 'src/../lib' } } } .. } |
и после раздела зависимостей:
01
02
03
04
05
06
07
08
09
10
11
12
|
task clearJar(type: Delete) { delete 'build/libs/' + POM_ARTIFACT_ID + '_' + VERSION_NAME + '.jar' } task makeJar(type: Copy) { from( 'build/bundles/release/' ) into( 'release/' ) include( 'classes.jar' ) rename ( 'classes.jar' , POM_ARTIFACT_ID + '_' + VERSION_NAME + '.jar' ) } makeJar.dependsOn(clearJar, build) |
Теперь, если вы запустите задачу makeJar
, AS создаст jar в каталоге с именем release.
- Если вы хотите иметь файл build.gradle, вы можете получить его здесь .
Ссылка: | Создайте jar-библиотеку с gradle, используя информацию AAR от нашего партнера JCG Франческо Аццолы в блоге Surviving с Android . |