之前的一些帖子中,我谈到了如何使用gradle将aar推入Maven Central 。 如果您还记得的话,我们必须修改一些文件等等,但是当其他开发人员想要使用我们的代码/库时,我们要做的工作可以帮助他们简化开发。 当将我们的代码以aar的形式推送到Maven中心时,我们可以简单地设置gradle依赖项将其重新用作libray。
例如,如果要使用Weatherlib,则必须编写:
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的文章(如果不看这里 ),为简单起见,我将显示两个属性文件:
POM_NAME=Android Weather Library
POM_ARTIFACT_ID=weatherlib
POM_PACKAGING=aar
和
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
因此,我想使用此信息来创建一个名称与与VERSION_NAME组合在一起的POM_ARTIFACT_ID相同的jar,并且应在特定目录下创建此jar。 所以我们必须在build.gradle
android节下添加:
android {
...
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
}
}
..
}
在依赖项部分之后:
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将在名为release的目录下创建一个jar。
- 如果您想要build.gradle文件,可以在这里获取。
翻译自: https://www.javacodegeeks.com/2014/05/create-a-jar-library-with-gradle-using-aar-info.html