我有一个 gradle 任务,我想有 2 个不同的版本。该任务是一个名为“migrate”的自定义任务,它将应用数据库迁移以便以后生成数据库类。
我想创建一个具有不同配置的副本,以将迁移应用到本地数据库。
目前,我有:
task migrateLocal(type: com.me.tasks.ApplyMigrationsTask) {
port = 3306
dbName = "me"
host = 'localhost'
migrationsDirectoryPath = project.layout.projectDirectory.dir("src/main/resources/me/migrations")
}
但是,我收到一个错误Cannot cast object '3306' with class 'java.lang.Integer' to class 'org.gradle.api.provider.Provider'
经过进一步调查,我试图做:
task migrateLocal(type: com.me.tasks.ApplyMigrationsTask) {
port.set(3306)
dbName.set("me")
host.set('localhost')
migrationsDirectoryPath.set(project.layout.projectDirectory.dir("src/main/resources/me/migrations"))
}
但后来我得到一个错误,如:Cannot get the value of write-only property 'port' for task 'migrateLocal'
这样做的正确方法是什么?我无法找到有关此模式或这些错误的文档。
谢谢。