Gradle:创建包含类和依赖项的zip文件

时间:2016-06-02 16:33:49

标签: gradle

我必须创建一个zip文件,其中包含classes - 文件夹中的类(以及清单等!)和libs文件夹中的依赖关系jar文件。我目前的尝试是:

task createZip(type: Jar) {
   into('classes')
   extension('zip')
   with jar
}

但它没有添加依赖项(正如任何人都猜到的那样)

2 个答案:

答案 0 :(得分:1)

你的问题是你想要一个zip文件,尽管你尝试使用Jar任务。无论你是zip还是jar(因为jar任务扩展了zip),下面的代码片段将收集所有已编译的依赖项,你可以将它们放在任何你想要的地方:

public class ConnectivityBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.e(TAG,"Broadcast received");
        final String action = intent.getAction();
        if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
            ConnectivityUtil.checkConnectivity(context);
        }
    }
}

答案 1 :(得分:1)

好的,我解决了它

task plugin(type: Zip) {
    from (configurations.compile) {
        into ('libs/')
    }
    from (sourceSets.main.output.classesDir) {
        into ('classes/')
    }
    from (sourceSets.main.resources) {
        into ('classes/')
    }
    from (new File(project.buildDir, 'tmp/jar/')) {
        into ('classes/META-INF/')
    }
}

plugin.dependsOn jar

将依赖关系复制到libs中,将所有已编译的类,资源和清单复制到libs中。 plugin.dependsOn jar很重要,因为jar任务会生成清单。