如何将 build.gradle 中的 gradle jar 配置翻译成插件代码
How to translate gradle jar config in build.gradle into plugin code
我早些时候问过 this question 关于以特定方式配置 jar 任务的问题。我现在需要将其转换为自定义插件中的代码。
build.gradle 中的工作配置是这样的:
jar {
exclude "yang"
from ("src/main/resources/yang") {
into ("META-INF/yang")
}
}
这正确地将 classes 置于根目录,但将 "src/main/resources/yang" 中的文件放入 "META-INF/yang"。
在我的自定义插件的 "apply" 方法中,我尝试在 "project.afterEvaluate()" 闭包中这样做:
Jar jarTask = project.getTasks().getByName("jar")
jarTask.exclude("yang")
jarTask.from(task.yangFilesRootDir)
jarTask.into("META-INF/yang")
从 API "Jar" 的文档中,我看不出有任何其他方法可以做到 "looks like" 我在构建脚本中的内容。
这行不通。它确实将 "src/main/resources/yang" 中的文件放入 "META-INF/yang",但它也将所有 class 文件放在那里。
假设您的插件是在 Groovy 中实现的,您需要将对 into()
的调用移动到传递给 from()
方法的配置闭包。
jarTask.from(task.yangFilesRootDir) {
into 'META-INF/yang'
}
我早些时候问过 this question 关于以特定方式配置 jar 任务的问题。我现在需要将其转换为自定义插件中的代码。
build.gradle 中的工作配置是这样的:
jar {
exclude "yang"
from ("src/main/resources/yang") {
into ("META-INF/yang")
}
}
这正确地将 classes 置于根目录,但将 "src/main/resources/yang" 中的文件放入 "META-INF/yang"。
在我的自定义插件的 "apply" 方法中,我尝试在 "project.afterEvaluate()" 闭包中这样做:
Jar jarTask = project.getTasks().getByName("jar")
jarTask.exclude("yang")
jarTask.from(task.yangFilesRootDir)
jarTask.into("META-INF/yang")
从 API "Jar" 的文档中,我看不出有任何其他方法可以做到 "looks like" 我在构建脚本中的内容。
这行不通。它确实将 "src/main/resources/yang" 中的文件放入 "META-INF/yang",但它也将所有 class 文件放在那里。
假设您的插件是在 Groovy 中实现的,您需要将对 into()
的调用移动到传递给 from()
方法的配置闭包。
jarTask.from(task.yangFilesRootDir) {
into 'META-INF/yang'
}