Android studio 生成带依赖项的 jar 文件
Android studio make jar file with dependencies
我想使用 android studio 将库项目制作成一个 jar 文件,其中包含许多 jar 文件和库项目,如下所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':app:libraries:MyLibrary:app')
compile 'com.luckycatlabs:SunriseSunsetCalculator:1.2'
compile project(':app:libraries:MyLibrary:app:libraries:MySubLibrary:app')
}
如何制作一个包含所有这些依赖项并拥有 class 个文件的 jar 文件?
最后,我找到了解决方案:
android.libraryVariants.all {
variant ->
def name = variant.buildType.name
if (name.equals(com.android.builder.core.BuilderConstants.DEBUG)) {
return; // Skip debug builds.
}
def task = project.tasks.create "jar${name.capitalize()}", Jar
task.dependsOn variant.javaCompile
//Include Java classes
task.from variant.javaCompile.destinationDir
//Include dependent jars with some exceptions
task.from configurations.compile.findAll {
it.getName() != 'android.jar' && !it.getName().startsWith('junit') && !it.getName().startsWith('hamcrest')
}.collect {
it.isDirectory() ? it : zipTree(it)
}
artifacts.add('archives', task);
}
我想使用 android studio 将库项目制作成一个 jar 文件,其中包含许多 jar 文件和库项目,如下所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':app:libraries:MyLibrary:app')
compile 'com.luckycatlabs:SunriseSunsetCalculator:1.2'
compile project(':app:libraries:MyLibrary:app:libraries:MySubLibrary:app')
}
如何制作一个包含所有这些依赖项并拥有 class 个文件的 jar 文件?
最后,我找到了解决方案:
android.libraryVariants.all {
variant ->
def name = variant.buildType.name
if (name.equals(com.android.builder.core.BuilderConstants.DEBUG)) {
return; // Skip debug builds.
}
def task = project.tasks.create "jar${name.capitalize()}", Jar
task.dependsOn variant.javaCompile
//Include Java classes
task.from variant.javaCompile.destinationDir
//Include dependent jars with some exceptions
task.from configurations.compile.findAll {
it.getName() != 'android.jar' && !it.getName().startsWith('junit') && !it.getName().startsWith('hamcrest')
}.collect {
it.isDirectory() ? it : zipTree(it)
}
artifacts.add('archives', task);
}