2016-08-15 3 views
1

У меня есть некоторый скрипт градиента, где я читаю файл свойств (различаю файл в разных конфигурациях выполнения) и назначаю свойства obect для свойства «ext» в каждой задаче.Пропустить проверку переменных в фазе конфигурации градации

task provisionMongoDBCopyDockerfile(type: Copy, dependsOn: 'readTestConfiguration') { 
     from "${projectDir}/deployment/scripts/Dockerfile.mongodb" 
     into "/tmp/stand/mondodb" 
     expand(ext.stand) 
     filteringCharset = 'UTF-8' 
    } 

    task readTestConfiguration() { 
     def props = loadStandProperties('test') 
     println props 
     tasks.each { 
      it.ext.stand = props 
      println it.ext 
     } 
    } 

, но когда я запускаю Gradle скрипт я получаю эту ошибку: «Невозможно получить свойство„стоять“на расширение дополнительных свойств, так как не существует» в соответствии с «расширить (ext.stand)». Как я могу решить эту проблему. Я не хочу включать все параметры конфигурации в «gradle.properties» и изменять его из конфигурации в конфигурацию.

ответ

1

Рассмотрите следующие (используя Gradle 2.14.1). Это эффективно устанавливает зависимость в фазе конфигурации. Также он использует project.ext против tasks.ext.

def readTestConfiguration = { 
    def props = loadStandProperties('test') 
    println props 
    project.ext.stand = props 
} 

def loadStandProperties (def env) { 
    // use mock data 
    return ["foo": "bar"] 
} 

tasks.whenTaskAdded { Task task -> 
    if (task.name == "provisionMongoDBCopyDockerfile") { 
     readTestConfiguration() 
    } 
} 

task provisionMongoDBCopyDockerfile(type: Copy) { 
    from "${projectDir}/in" 
    into "${projectDir}/out" 
    expand(project.ext.stand) 
} 
+0

Похоже, я использую событие в Gradle DAG здания - но что делать, если мне нужно прочитать разные свойства - говорят «Gradle buildTestStand» читает «stand-test.properties», «Gradle buildProductionStand» читает «стенд -properties.properties "? –

+0

Но на этапе конфигурации это не проблема, возможно, это просто проверяет свойства - не это значения .... –

+0

Я считаю, что вы задаете несколько вопросов. Мой ответ касался ошибки, которую вы получали. Если у вас есть другие препятствия для вашей цели, я предлагаю опубликовать другой вопрос (ы). –

Смежные вопросы