gradle: как использовать результат задачи на этапе настройки (ospackage плагина) - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть скрипт gradle, в котором я настраиваю плагин (в моем случае ospackage, но я предполагаю, что то же самое применимо к другому плагину), используя переменную согласно:

ospackage {
...
version project.ext.my_version 
...
}

Эта переменная сначала инициализируется, а затем обновляется с помощью задачи, которую я сначала вызываю в моем скрипте сборки:

  ext {
        ...
        my_version = "XXX"
        ...
    }

task init{
    group 'ho'
    description 'get HO Version'
    doLast {
        ...
        project.ext.my_version = getParameter("VERSION")
        ...
            }
     }

проблема в том, что плагин (в моем случае ospackage) всегда учитывает начальное значение «XXX», а не то, которое было установлено при выполнении задачи инициализации. Я знаю, что это как-то связано с фазой конфигурации и выполнения, но все же я не могу найти обходной путь, чтобы делать то, что я хочу.

Для информации я также попытался создать задачу, подобную приведенной ниже, но она также не удалась, так как кажется, что задача buildDeb не перезаписывает параметр версии ospackage

buildDeb {
    doLast {
        ...
        version project.ext.my_version
        link('/usr/bin/aa', '/usr/bin/aa.sh')
        ...
    }
}

Я также пытался поместить в конец моего файла что-то вроде:

ospackage.dependsOn("init")

но проблема в том, что ospackage не распознается как задача

Заранее благодарю за помощь.

1 Ответ

0 голосов
/ 01 ноября 2018

в соответствии с документацией , тип задачи Deb:

task fooDeb(type: Deb) {
    packageName          // Default to project.name
    packageDescription   // Defaults to project.description
    version              // Version field, defaults to project.version
    arch                 // Architecture, defaults to "all". E.g. "amd64", "all"
    multiArch            // Configure multi-arch behavior: NONE (default), SAME, FOREIGN, ALLOWED (see: https://wiki.ubuntu.com/MultiarchSpec )
    release              // DEB Release
    epoch                // Epoch, defaults to 0
    user                 // Default user to permission files to
    permissionGroup      // Default group to permission files to, "group" is used by Gradle for the display of tasks
    packageGroup
    buildHost   
    license 
    packager    
    distribution    
    vendor  
    url 
    signingKeyId    
    signingKeyPassphrase    
    signingKeyRingFile  
    sourcePackage   
    provides
    uid                  // Default uid of files
    gid                  // Default gid of files
    createDirectoryEntry // [Boolean]   
    maintainer           // Defaults to packager
    uploaders            // Defaults to packager
    priority    
    summary 
    conflicts   
    recommends  
    suggests    
    enhances    
    preDepends  
    breaks  
    replaces
}

где:

версия Поле версии, по умолчанию project.version

может попробовать подключаемый модуль RPM .

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