Gradle 7.2 Tar任务baseName已弃用,替换为archiveBaseName却被拒绝报错
问题排查与解决方案
根因说明
- Gradle 7.x对归档任务的属性进行了重构,所有
archive前缀的属性均改为惰性Property类型,取消了原baseName 'xxx'这类隐式DSL便捷方法,所以直接写archiveBaseName 'Test'会提示找不到方法。 - 直接用
archiveBaseName='Test'的写法会覆盖整个Property对象,破坏归档路径相关的默认关联配置,导致系统无法自动推导archiveFile属性的值,最终触发配置校验失败。
正确配置写法
两种可用的无警告兼容写法:
写法1:使用Property的set方法(最常用)
task dist(type: Tar) { archiveBaseName.set('Test') into ('.') { from('.') } }
写法2:使用value方法赋值
task dist(type: Tar) { archiveBaseName.value('Test') into ('.') { from('.') } }
验证
执行gradle dist即可正常生成包名为Test.tar的归档文件,无弃用警告也不会报错。
内容的提问来源于stack exchange,提问作者John Elion
相关产品推荐
相关产品推荐

