前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给工程打jar包时如何把libs中的jar包一并打入

给工程打jar包时如何把libs中的jar包一并打入

作者头像
乱码三千
发布2021-07-29 15:55:51
2.7K0
发布2021-07-29 15:55:51
举报
文章被收录于专栏:乱码三千乱码三千乱码三千

当我们在进行maven打包时

apply plugin: 'maven'


uploadArchives { // 这里只是更新到本地,可以上传到自定义的maven仓库
    repositories {
        mavenDeployer {
            //提交到远程服务器:
            // repository(url: "http://www.xxx.com/repos") {
            //    authentication(userName: "admin", password: "admin")
            // }
            pom.groupId = 'com.insworks.plugin'
            pom.artifactId = 'framework-plugin'
            pom.version = '1.0.3'
            repository(url: uri("$rootDir/global/repo"))
        }
    }
}

如果工程在本地引用了第三方jar包, 那么直接使用uploadArchives指令是无法将第三方jar包打进去的

解决方案如下:

方案一: 将jar包源代码拷入工程,然后一并打包(不推荐 )

方案二: 只需加入以下代码

task makeJar(type: Jar) {
    //以下是需要打包进jar包中的内容
    from(project.zipTree("libs/dom4j-2.1.1.jar"))
}
//包含第三方jar
artifacts {
    archives makeJar
}
附加
  1. 如果我想打包源码, 那么加入以下代码:
// 源代码一起打包(不需要打包源代码的不要添加这几行)
task androidSourcesJar(type: Jar) {
    classifier = 'sources'
    //指定源码目录
    source = android.sourceSets.main.java.srcDirs
    //加入第三方jar 这个是字节码文件
    from(project.zipTree("libs/dom4j-2.1.1.jar"))
}
artifacts {
    archives androidSourcesJar
}
  1. 如果我想打包文档, 那么加入以下代码:
//生成文档注释
task androidJavadocs(type: Javadoc) {
    //如果出现错误 忽略不计
    failOnError = false
    //指定源码目录
    source = android.sourceSets.main.java.srcDirs
    ext.androidJar = "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
    classpath += files(ext.androidJar)
}
//将文档打包成jar
task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) {
    classifier = 'javadoc'
    from androidJavadocs.destinationDir
}
//包含文档
artifacts {
 archives androidJavadocsJar
}
  1. 如果我想将两个jar包合并成一个jar包, 那么使用以下代码:
task makeJar(type: Jar) {
    //以下是需要打包进jar包中的内容
    from(project.zipTree("libs/dom4j-2.1.1.jar"))
    from(project.zipTree("build/libs/lib_framework_plugin.jar"))
    //合体后的jar包名称
    archiveName = "framework-plugin-1.0.1.jar"
    //输出目录
    destinationDir = file('build/libs')
}

然后执行makeJar指令

成功后,可以在build目录中找到合并后的jar包

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乱码三千 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 附加
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档