多项目快速价值的gradle-DRY方法

多项目快速价值的gradle-DRY方法,gradle,build.gradle,Gradle,Build.gradle,我在widgets下有一个子项目 widgets widget1 widget2 widget3 etc 我需要补充一点 jar { manifest { attributes 'widget-name': widgetName attributes 'widget-description': widgetDescriptio

我在widgets下有一个子项目

 widgets
     widget1
     widget2
     widget3
     etc
我需要补充一点

   jar 
      { 
        manifest
           { 
               attributes  'widget-name': widgetName 
               attributes  'widget-description': widgetDescription
               attributes  'widget-args': widgetArgs
               ...
           }
      }
在所有子项目中,为每个项目添加不同的名称

我不想在每个项目(':widgets:widget1'){jar{…}中都写这个


如何在此生成文件中使用DRY?

您可以使用以下内容:

subprojects {
    jar { 
        manifest { 
            attributes 'widget-name': project.name 
        }
    }
}

对不起,我还有其他硬性的价值观:(你到底想实现什么?可能不值得考虑这个代码。我有多个小部件子项目。每个项目都有一组相同的jar.manifest.attributes…相同的键和不同的值。所以我们需要创建单个项目(“:widgets:widget[X]”)块并添加相同的代码?或者使用常规编码技术来分解代码。不过,维护数据映射不会容易得多。与单个
项目(':widgets:widget[X]')
块不同,我通常会为每个子项目使用单独的构建脚本。是的。这是最糟糕的情况:)。我尝试编写一个方法并返回jar一次,后来又尝试返回manifest,但两个时间梯度都无法识别。所以我需要使用单独的构建文件。