我正在使用AndroidStudio,我有如下所示的项目:
蓝圈内的是myLib。 myLib还需要使用红色圆圈内的外部库和一个apache包(绿色圆圈)。
所以我想让整个事情成为一个单独的.jar,所以我可以在另一个项目中使用它。
分步指南非常感谢,我是开发人员世界的初学者。
谢谢!
答案 0 :(得分:128)
上面的代码:
task deleteJar(type: Delete) {
delete 'libs/jars/logmanagementlib.jar'
}
task createJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('libs/jars/')
include('classes.jar')
rename('classes.jar', 'logmanagementlib.jar')
}
createJar.dependsOn(deleteJar, build)
答案 1 :(得分:55)
如果在Gradle中将代码设置为普通Java模块,那么让Gradle为您提供包含内容的jar文件非常容易。该jar文件只包含您的代码,而不是它依赖的其他Apache库。我建议这样分发;将依赖项捆绑到库中是有点奇怪的,这些库的用户必须自己包含这些依赖项更为正常(因为否则这些项目的冲突已经链接了库的副本,可能是不同的版本)。更重要的是,如果您要发布图书馆,可以避免重新分发其他人的代码时出现潜在的许可问题。
将需要编译的代码转换为jar,并将其移至Android Studio中的单独普通Java模块:
希望您的项目现在应该正常建设。完成构建后,Java库的jar文件将放在模块目录的 build / libs 目录中。如果要手动构建jar文件,可以从Gradle窗口运行其 jar 构建文件任务:
答案 2 :(得分:13)
在Task
下,Gradle已经有一个other
然后向下滚动到createFullJarRelease
并单击它。
之后,您将在项目的此文件夹中找到人工制品
Build > Intermediates > Full_jar > Release > CreateFullJarRelease > full.jar
答案 3 :(得分:9)
只需将其添加到java模块的build.gradle即可。它将包含归档中的依赖库。
mainClassName = "com.company.application.Main"
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
这将导致[module_name] / build / libs / [module_name] .jar文件。
答案 4 :(得分:1)
转到Android Studio中的“ Gradle”选项卡,然后选择库项目。
然后转到任务
然后转到其他
双击bundleReleaseaar
您可以在.aar
下找到your_module/build/outputs/aar/your-release.aar
个文件
答案 5 :(得分:0)
我找到的方法是找到项目编译器输出(项目结构>项目)。 然后找到你想要转向jar的模块的编译文件夹, 用zip压缩它并将输出的扩展名从zip更改为jar。
答案 6 :(得分:0)
.jar文件将在您编译/运行应用程序时自动生成。
你可以从root_folder / app / build / intermediates / bundles / debug找到你的class.jar文件
答案 7 :(得分:0)
task deleteJar(type: Delete) {
delete 'libs/mylibrary.jar'
}
task exportjar(type: Copy) {
from('build/intermediates/compile_library_classes/release/')
into('libs/')
include('classes.jar')
rename('classes.jar', 'mylibrary.jar')
}
exportjar.dependsOn(deleteJar, build)
答案 8 :(得分:0)
如果您从AndroidStudio运行gradle任务
assembleRelease
或通过终端
./gradlew <moduleName>:assembleRelease
然后您将能够在.aar
中找到<modulePath>/build/outputs/aar/<Name>.aar
之后,您可以使用命令行工具进行其他操作(例如,创建.jar
)