如何将仅资源工件用作Gradle依赖项

时间:2019-06-13 19:36:20

标签: gradle dependencies resources runtime

我创建了一个包含通用非源代码资源(例如图像,Spring配置文件等)的JAR工件,并使用工件标识符com.mycompany.myproject:common-resources:1.0-SNAPSHOT将工件部署到Nexus存储库。

使用Gradle,通过从归档文件中提取文件并将它们添加到类路径中,我将这些资源包括在其他项目中:

dependencies {
    externalResource com.mycompany.myproject:common-resources:1.0-SNAPSHOT
}

task unzip(type: Copy) {
    from zipTree(configurations.externalResource.singleFile).matching {
        exclude('META-INF/')
    }
    into "$buildDir/resources/main/"
}
tasks.classes.dependsOn tasks.unzip

此代码块按原样在多个Gradle构建文件中重复使用。

我想消除代码重复。最好的方法是什么?

理想情况下,我宁愿使用类似

dependencies {
    externalResource com.mycompany.myproject:common-resources:1.0-SNAPSHOT
}

需要这些资源的模块的Gradle构建文件中,并将样板代码保留在其他位置。

我尝试将任务定义放在单独的文件resources.gradle中,并使用

将该文件包含在build.gradle中
apply from: "${rootProject.projectDir}/resources.gradle" 

但出现以下错误:

  

预期的配置':print-external-config:externalResource'到   仅包含一个文件,但是不包含任何文件。

其中print-external-config是需要公共资源的模块的名称。

谢谢。

0 个答案:

没有答案