2013-11-14 4 views
0

В моем Gradle сценарии я был в состоянии успешно читать свойства, как это:init.gradle читать свойства из командной строки

def environment = hasProperty('env') ? env : 'dev'

С помощью этого можно выполнить сценарий сборки, как это:

gradlew clean assemble -Penv=prod

Проблема возникает, когда я попытался переместить это в файл init.gradle. Файл распознается, и я могу использовать другие свойства, которые я определяю в скрипте, однако я не могу получить какой-либо из командной строки. Как я могу это сделать?

Мой init.gradle файл:

allprojects { 
    buildscript { 
     repositories { 
      mavenCentral() 
     } 
     dependencies { 
      classpath 'com.android.tools.build:gradle:0.6.+' 
     } 
    } 
    project.ext['nexusDomainName'] = 'https://example.com/nexus' 
    project.ext['compileSdkVersion'] = 19 
    project.ext['buildToolsVersion'] = "19" 
    project.ext['minSdkVersion'] = 8 
    project.ext['targetSdkVersion'] = 19 

    project.ext['sourceCompatibility'] = '1.7' 
    project.ext['targetCompatibility'] = '1.7' 

    //hasProperty('release') is always false 
    project.ext['archiveType'] = hasProperty('release') ? '' : '-SNAPSHOT' 
    project.ext['archiveUrl'] = hasProperty('release') ? "$nexusDomainName/content/repositories/releases/" : "$nexusDomainName/content/repositories/snapshots/" 


    // This buildEnv property won't read either 
    project.ext['buildEnv'] = hasProperty('env') ? env : 'dev' 
    println "prepping for $buildEnv" 
    project.ext['archivesBaseNameSuffix'] = (project.ext['buildEnv'] == 'stage' || project.ext['buildEnv'] == 'dev') ? '-' + project.ext['buildEnv'] : '' 

    repositories { 
     mavenLocal() 
     maven { 
      credentials { 
       username 'username' 
       password 'password' 
      } 
      url "$nexusDomainName/content/groups/public/" 
     } 
     mavenCentral() 
    } 
} 

ответ

1

-P устанавливает проект свойство, которое не сразу доступны в сценарии инициализации. (Вы можете получить доступ к проектам и их свойствам из сценария инициализации, но этот доступ будет отложен до тех пор, пока проекты не будут созданы.) Однако использование системы должно работать (-D).

+0

Благодарим за быстрый ответ! (извините за задержку ответа) – Sababado

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