Повторное использование свойств пользовательской задачи Gradle - PullRequest
0 голосов
/ 14 сентября 2018

Я определяю задачу Gradle следующим образом:

task assembleAppPackage() {    
  File distDir = file("${projectDir}/dist")
  File binDir = file("${distDir}/bin")
  File configDir = file("${distDir}/config")
  File libDir = file("${distDir}/lib")

  doLast {
    ...using distDir , binDir, etc...
  }
}

Где-то позже я хочу добавить некоторые функции в сборку AppPackage, поэтому я ожидаю, что что-то вроде этого будет работать:

assembleAppPackage {
    doLast {
        copy {
            from "${projectDir}/bin"
            into binDir       #binDir from original task definition
        }
    }
}

И претензий Gradle нет binDir в объеме:

Could not get unknown property 'binDir' for object of type org.gradle.api.internal.file.copy.CopySpecWrapper_Decorated.

Как определить свойства задачи, к которым впоследствии можно получить доступ в расширениях задачи? Это возможно только при определении класса задачи?

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете использовать дополнительные свойства для этого, я думаю:

task assembleAppPackage() {    
  ext.distDir = file("${projectDir}/dist")
  ext.binDir = file("${distDir}/bin")
  ext.configDir = file("${distDir}/config")
  ext.libDir = file("${distDir}/lib")

  doLast {
    ...using distDir , binDir, etc...
  }
}

(остальная часть вашего кода не изменилась)

На большинстве сущностей gradle вы можете использовать эту концепцию: установить свойство с помощью "доб «.или

ext {
    name1 = value1
    name2 = value2
}

См. https://docs.gradle.org/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html или Google для "дополнительных свойств gradle"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...