Gradle error: Could not find method jar() for arguments
Gradle error: Could not find method jar() for arguments
我正在编写一个自定义插件,它将一些数据添加到 Java 项目的清单中。
看起来像这样:
package com.example.gradle
import org.gradle.api.Plugin
import org.gradle.api.Project
public class ExamplePlugin implements Plugin<Project> {
def apply(Project project) {
project.jar() {
manifest {
attributes 'buildServer': checkIfIsBuildServer()
attributes 'personalBuild': checkIfIsPersonalBuild()
}
}
}
def checkIfIsBuildServer() {
return 'some result'
}
def checkIfIsPersonalBuild() {
return 'some result'
}
}
当我尝试将它应用到某个项目时,出现错误:
Could not find method jar() for arguments [com.example.gradle.ExamplePlugin$_apply_closure1@411e4f5e] on project ':SomeProject' of type org.gradle.api.Project.
我有理由相信这是一些缺失的导入。我不知道如何确定它应该是什么导入。
jar()
不是 Project
上的方法。
如果我对您的代码的理解正确,那么您要做的是配置从 Java Plugin.
创建的 jar
任务
所以你需要:
- 获取任务
- 配置任务
类似于:
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.tasks.bundling.Jar
public class ExamplePlugin implements Plugin<Project> {
def apply(Project project) {
project.afterEvaluate {
project.tasks.named(JavaPlugin.JAR_TASK_NAME, Jar) {
it.manifest {
attributes 'buildServer': checkIfIsBuildServer()
attributes 'personalBuild': checkIfIsPersonalBuild()
}
}
}
}
def checkIfIsBuildServer() {
'some result'
}
def checkIfIsPersonalBuild() {
'some result'
}
}
我高度建议为您的插件切换到 Kotlin 或 Java。它会使像这样微不足道的错误得到解决,与 Groovy 的动态特性相比,您将完全理解事情的来源。
我正在编写一个自定义插件,它将一些数据添加到 Java 项目的清单中。
看起来像这样:
package com.example.gradle
import org.gradle.api.Plugin
import org.gradle.api.Project
public class ExamplePlugin implements Plugin<Project> {
def apply(Project project) {
project.jar() {
manifest {
attributes 'buildServer': checkIfIsBuildServer()
attributes 'personalBuild': checkIfIsPersonalBuild()
}
}
}
def checkIfIsBuildServer() {
return 'some result'
}
def checkIfIsPersonalBuild() {
return 'some result'
}
}
当我尝试将它应用到某个项目时,出现错误:
Could not find method jar() for arguments [com.example.gradle.ExamplePlugin$_apply_closure1@411e4f5e] on project ':SomeProject' of type org.gradle.api.Project.
我有理由相信这是一些缺失的导入。我不知道如何确定它应该是什么导入。
jar()
不是 Project
上的方法。
如果我对您的代码的理解正确,那么您要做的是配置从 Java Plugin.
创建的jar
任务
所以你需要:
- 获取任务
- 配置任务
类似于:
import org.gradle.api.plugins.JavaPlugin
import org.gradle.api.tasks.bundling.Jar
public class ExamplePlugin implements Plugin<Project> {
def apply(Project project) {
project.afterEvaluate {
project.tasks.named(JavaPlugin.JAR_TASK_NAME, Jar) {
it.manifest {
attributes 'buildServer': checkIfIsBuildServer()
attributes 'personalBuild': checkIfIsPersonalBuild()
}
}
}
}
def checkIfIsBuildServer() {
'some result'
}
def checkIfIsPersonalBuild() {
'some result'
}
}
我高度建议为您的插件切换到 Kotlin 或 Java。它会使像这样微不足道的错误得到解决,与 Groovy 的动态特性相比,您将完全理解事情的来源。