2016-10-14 2 views
0

Работает, чтобы получить Gradle для создания CSV-файла и попытки создать свойства для моего файла build.gradle, который может быть передан из командной строки.Не удалось получить свойство неизвестного свойства '' для задачи

я вставил следующее в gradle.properties:

userCount=100 

В моем файле build.gradle

task writeUsersFile << { 
    if (project.hasProperty('userCount')){ 
     args = getProperty(userCount) 
    } 
    outputFile.withWriter { out -> 
    1.upto($userCount) { 
     out.println(String.format(userNameFmt, it, testPassword)) 
    } 
    } 
} 

Когда я запускаю процесс Gradle через командную строку я сталкиваюсь следующее:

Could not get unknown property '100' for task ':writeUsersFile' of type org.gradle.api.DefaultTask. 

Если я передаю параметр из командной строки, он соответствующим образом обновляет ror от значения по умолчанию «100» до значения, которое я передаю.

также пытались:

task writeUsersFile << { 
    userCount = project.hasProperty('userCount') ? project.userCount : '' 
    outputFile.withWriter { out -> 
    1.upto($userCount) { 
     out.println(String.format(userNameFmt, it, testPassword)) 
    } 
    } 
} 

и что приводит к:

Could not get unknown property '$userCount' for task ':writeUsersFile' of type org.gradle.api.DefaultTask. 

Сочинение файла работает нормально, если я определяю userCount=100 (или любой произвольный номер) непосредственно в моей сборки. gradle, roadblock устанавливает аргумент для # пользователей.

+0

Помог ли мой ответ решить вашу проблему? Если да, не могли бы вы принять ответ, чтобы решить этот вопрос? См. [Здесь] (http://stackoverflow.com/help/someone-answers). Если нет, добавьте более подробную информацию к своему вопросу или то, что вам не хватает в ответе. – dpr

+0

Ваш ответ помог подтолкнуть меня к правильному ответу. Я все еще сталкивался с проблемами при объявлении свойства в блоке задач. Я принял ваш совет, чтобы использовать только «userCount» и добавлю, что решило проблему для меня. –

ответ

0

следующие изменения решен вопрос, который я сталкивался. Когда я использовал userCount непосредственно в вызове метода upto(), я столкнулся с проблемой синтаксического анализа. Следующий блок разрешает сообщение об ошибке и последующую проблему синтаксического анализа:

task writeUsersFile << { 
    outputFile.withWriter { out -> 
    1.upto(Integer.parseInt(userCount)) { 
     out.println(String.format(userNameFmt, it, testPassword)) 
    } 
    } 
} 
0

Вы можете просто использовать userCount без использования getProperty и обозначение $userCount оценивается только в двойных кавычках:

task writeUsersFile << { 
    t_userCount = project.hasProperty('userCount') ? userCount : 0 
    outputFile.withWriter { out -> 
    1.upto(t_userCount) { 
     out.println(String.format(userNameFmt, it, testPassword)) 
    } 
    } 
} 

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

  • Нет связанных вопросов^_^