Android项目打成jar包

本文介绍如何使用Gradle构建包含特定资源的自定义Jar包,包括在build.gradle文件中配置任务,从源文件夹中包含assets和res资源,以及排除不必要的文件。

1、主工程依赖library

2、在library中的build.gradle文件中进行配置

def SDK_BASENAME = "idcardcamera";
def SDK_VERSION = "_v1.0";
def OUTPUT_PATH = "build";
def INPUT_PATH = file('build/intermediates/packaged-classes/release/classes.jar')

//删除任务
task deleteBuild(type: Delete) {
    delete OUTPUT_PATH + SDK_BASENAME + SDK_VERSION + ".jar"
}
//创建任务
task makeJar(type: Jar) {
    //需要打包的原始classes.jar
    from zipTree(INPUT_PATH)
    //将assets目录打入jar包
    from fileTree(dir: 'src/main',include: ['assets/**'])
    from fileTree(dir: 'src/main',include: ['res/**'])
    from fileTree(dir: 'src/main',include: ['AndroidManifest.xml'])
    //去掉不需要打包的目录和文件
    exclude('test/', 'BuildConfig.class')
    //生成文件名字
    baseName = SDK_BASENAME + SDK_VERSION
    //生成
    destinationDir = file(OUTPUT_PATH)
}

makeJar.dependsOn(deleteBuild, build)

 

3、点击gradle/library/other/makeJar,生成jar包

### 如何将GitHub上的Java项目JAR文件 要将GitHub上的Java项目JAR文件,通常可以按照以下方法操作: #### 使用Maven构建并生成可运行的JAR文件 如果该项目使用的是Maven作为构建工具,则可以通过执行特定命令来创建一个含依赖项的JAR文件。此过程会自动处理项目的编译以及所有必要的依赖关系。 以下是具体的操作方式: 1. **克隆项目到本地** 首先通过Git命令或者手动下载ZIP的方式获取目标仓库的内容。 2. **安装所需的依赖** 执行`mvn clean install`命令以确保所有的依赖都被正确解析和加载。这一步还会触发测试阶段(如果有配置的话),从而验证代码质量。 3. **修改POM.xml文件(如有必要)** 如果希望最终得到可以直接运行的fat jar(即含了所有外部库在内的单一jar文件),则需确认pom.xml中有如下插件定义部分: ```xml <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <archive> <manifest> <mainClass>fully.qualified.MainClass</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` 4. **生成JAR文件** 接下来,在终端输入下面这条指令完成实际打动作: `$ mvn package assembly:single` 或者更简单的形式 `mvn clean package`. 成功之后会在target目录下发现类似这样的产物——`mvn-example-1.0-SNAPSHOT-jar-with-dependencies.jar`, 它就是我们需要的结果[^1]. #### 对于Gradle驱动下的工程实例化流程说明 当面对基于gradle管理的java应用时,同样存在便捷途径达成相同目的: 调整build.gradle脚本内容如下所示: ```groovy apply plugin: 'java' archivesBaseName = 'myProject' task fatJar(type: Jar) { manifest { attributes 'Main-Class': 'com.example.Main' // 替换为主类路径名 } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } with jar } ``` 随后只需简单调用一次`./gradlew fatJar`即可获得完整的输出物. 另外值得注意的一点在于某些特殊场景可能还需要额外引入第三方资源比如这样写入settings.gradle里头: ```groovy dependencies { implementation files('libs/*.jar') } [^2] ``` 对于Android Studio环境内的原生支持情况而言, 可能涉及到Eclipse ADT迁移过来的老版本解决方案提示检查是否存在libcocos2dx相关组件缺失状况等问题描述见参考资料[^3]. 最后提及一点关于bazel构建体系相关内容提到初次接入dagger框架时候记得更新workspace文档声明远程地址链接指向官方release页面位置信息等等细节待补充完善[^4]. ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值