为了账号安全,请及时绑定邮箱和手机立即绑定

Android Library Gradle版本JAR

Android Library Gradle版本JAR

慕村225694 2019-11-08 14:14:09
如何发布android-library项目的Jar包装?我发现,classes.jar位于下面build/bundles/release/classes.jar,我想这是正确的Jar包(包含*.class文件)。有什么正式的方法可以将库发布为JAR而不是AAR?
查看完整描述

3 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

仅仅因为先前的答案不符合我的需求,所以我分享了一些棘手的版本,以使用项目类和aar / jar依赖项生成一个jar。


// A tricky jar operation, we want to generate a jar files that contains only the required classes used.

// Dependencies are in jar and aar, so we need to open the aar to extract the classes and put all at the same level

// (aar is a zip that contains classes.jar, the latter is a zip that contains .class files)

task jar(type: Jar) {

    from {

        List<File> allFiles = new ArrayList<>();

        configurations.compile.collect {

            for (File f : zipTree(it).getFiles()) {

                if (f.getName().equals("classes.jar")) {

                    allFiles.addAll(zipTree(f).getAt("asFileTrees").get(0).getDir())

                }

            }

        }

        allFiles.add(new File('build/intermediates/classes/release'))

        allFiles // To return the result inside a lambda

    }

    archiveName( project.ext.appName + '.jar' )

}

这不能管理构建类型/风格,但是可以进行修改(可以在没有味道的情况下构建构建版本是可以的)。


如果您有更聪明或更优雅的解决方案,请分享


查看完整回答
反对 回复 2019-11-08
  • 3 回答
  • 0 关注
  • 656 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信