在使用Gradle的Zip任务使用'into'创建的Zip文件中包含依赖项(在v4之前运行良好)

时间:2019-05-22 08:10:44

标签: gradle

我正在使用Gradle Wrapper v3.2.1的旧项目中工作,但我想将其更新到最新版本(当前为v5.4.1)。

我曾尝试先将其更新到v4.10.2,但是它也失败了,所以我猜想它在v3-> v4之间是不向后兼容的。

我们在build.gradle中拥有的代码是:

task buildZip(type: Zip) {
    group 'Build'
    description 'Assembles a zip archive containing the main classes.'

    baseName = "someName"
    from compileJava
    from processResources
    into('lib') {
        from configurations.runtime
    }
}

使用gradle v3,它在“ lib /”文件夹下的.zip文件中包含了所有库(作为.jar文件),但是如果我使用v4或更高版本,它不会失败,但也不会包含库。 I have achieved to get the .class files of the dependencies,但这不能满足我的需求(AWS Lambda函数)。

关于如何将.jar依赖项放入.zip文件的任何想法?

干杯! 弗朗西斯科·罗伯斯·马丁

1 个答案:

答案 0 :(得分:0)

因此,感谢Opal的评论,我一直在寻找更多东西并找到了解决方案,但是由于我强迫implementation才能解决,这似乎不太正确:

configurations.implementation.setCanBeResolved(true)

task buildZip(type: Zip) {
    group 'Build'
    description 'Assembles a zip archive containing the main classes.'

    baseName = "someName"
    from compileJava
    from processResources
    into('lib') {
        from configurations.implementation
    }
}

它可以工作,但是我想应该没有第一行就可以有更好的方法。