我创建了一个包含通用非源代码资源(例如图像,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
是需要公共资源的模块的名称。
谢谢。