我在Android Studio中有一个库项目。我想为这个库生成一个.jar文件。我需要这个图书馆项目jar file contain/include all the dependencies
。
问题是我无法找到生成jar文件的方法。有什么办法可以为我的项目生成一个jar文件吗?
最好的问候
答案 0 :(得分:1)
Here是Gradle
任务的示例,它从.jar
创建classes.jar
。
classes.jar
文件可以在/build/intermediates/exploded-aar/
文件夹中找到。
修改强>
为每个Android Librar
项目创建jar文件并单独分发它们。那些库项目所需的依赖项 - 在最终项目中添加这些依赖项,将使用您的库。
例如:您Android Library
项目MyLibProject
,其在build.gradle
dependencies {
compile "com.android.support:support-v4:19.+"
}
当您构建项目时,classes.jar
将获得MyLibProject
,而classes.jar
只包含来自库项目的类,但不包含来自com.android.support:support-v4:19.+
的类。
在另一个项目中,您在classes.jar
中添加build.gradle
作为库依赖项,并定义与MyLibProject
中相同的依赖项。
如果您仍然需要fatJar
,请查看here如何使用fatJar
创建Gradle
。
答案 1 :(得分:1)
如果在Gradle中将代码设置为普通Java模块,那么让Gradle为您提供包含内容的jar文件非常容易。该jar文件只包含您的代码,而不是它依赖的其他Apache库。我建议这样分发;将依赖项捆绑到库中是有点奇怪的,这些库的用户必须自己包含这些依赖项更为正常(因为否则这些项目的冲突已经链接了库的副本,可能是不同的版本)。更重要的是,如果您要发布图书馆,可以避免重新分发其他人的代码时出现潜在的许可问题。
将需要编译的代码转换为jar,并将其移至Android Studio中的单独普通Java模块:
File menu > New Module... > Java Library
Set up the library, Java package name, and class names in the wizard. (If you don't want it to create a class for you, you can just delete it once the module is created)
In your Android code, set up a dependency on the new module so it can use the code in your new library:
File > Project Structure > Modules > (your Android Module) > Dependencies > + > Module dependency. See the screenshot below:
从出现的对话框的列表中选择您的模块:
希望您的项目现在应该正常建设。完成构建后,Java库的jar文件将放在模块目录的build / libs目录中。如果要手动构建jar文件,可以从Gradle窗口运行其jar构建文件任务:
此处的Oroginal文章:How to make a .jar out from an Android Studio project