Android studio使具有依赖关系的jar文件 [英] Android studio make jar file with dependencies

查看:389
本文介绍了Android studio使具有依赖关系的jar文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用android studio将一个库项目创建到一个包含许多jar文件和库项目的jar文件,如下所示:



依赖关系{

  compile fileTree(dir:'libs',include:['* .jar'])
编译项目(':app:库:MyLibrary:app')
compile'c​​om.luckycatlabs:SunriseSunsetCalculator:1.2'
编译项目(':app:libraries:MyLibrary:app:libraries:MySubLibrary:app')

}



如何创建一个jar文件依赖关系和自己的类文件?

解决方案

最后,我找到了解决方案:



android.libraryVariants.all {



变体 - >
def name = variant.buildType.name



{pre> if(name.equals(com.android.builder.core.BuilderConstants.DEBUG)){
return; //跳过调试版本。
}
def task = project.tasks.createjar $ {name.capitalize()},Jar
task.dependsOn variant.javaCompile
//包含Java类
task.from variant.javaCompile.destinationDir
//包含依赖的jar包含一些异常
task.from configurations.compile.findAll {
it.getName()!='android。 jar'&& !it.getName()。startsWith('junit')&& !it.getName()。startsWith('hamcrest')
} .collect {
it.isDirectory()?它:zipTree(it)
}
artifacts.add('archives',task);

}


I want to use android studio to make a library project to a jar file which contains many jar files and library projects like this:

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')

}

How can I make a jar file with all this dependencies and own class files?

解决方案

Finally, I found the solution:

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文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆