2013-03-15 8 views
6

mit folgenden in build.gradle:Richtig Standardeinstellungen für gradle Eigenschaften

uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url: "$repoUrl") { 
       authentication(userName: "$repoUser", password: "$repoPassword") 
      } 
     } 
    } 
} 

Wie kann ich $repoUrlfile://$buildDir/repo einen Standardwert haben?

Ich habe versucht, repoUrl=file://$buildDir/repo in gradle.properties setzen, aber es funktioniert nicht wie ich erwartet habe, wie es scheint, dass $repoUrl nicht rekursiv ausgewertet wird.

Antwort

2

Sieht aus wie es ist, weil repoUrl=file://$buildDir/repo als einfache Zeichenfolge behandelt wird, ohne buildDir Substitution.

Wenn kann dies versuchen:

repository(url: repoUrl.replace('$buildDir', "$buildDir")) {

Oder etwas Ähnliches:

// run as 'gradle build -PreportUrl=blabla' 
def repoUrl = "file://$buildDir/repo" 
if (binding.variables.containsKey('repoUrl ')) { 
repoUrl = binding.variables.get('repoUrl ') 
} 
+0

Der 'Replace'-Hack ist in Ordnung, danke! – Tair

+0

Typo: '... ersetzen ('$ builddir', "$ builddir") ...' – Tair

+0

dankt Ihnen, feste –

1

Sie nicht Gradle Eigenschaften wie project.buildDir von Eigenschaften Dateien verweisen können. Die Eigenschaften-Dateien sind sehr begrenzt, und im Allgemeinen würde ich empfehlen, alle Informationen in Gradle-Build-Skripten zu behalten. Sie können eine beliebige Anzahl von Build-Skripten verwenden und sie in anderen Skripts mit apply from: "path/to/script" einschließen.

+1

Einer meiner Wow s über gradle war, dass '~/.gradle/gradle.properties' hat Vorrang vor '/gradle.properties', denn ich auf gradle.properties bestehen :) – Tair

+0

gibt es eine Möglichkeit, einen Standardwert für eine Eigenschaft in einem' build.gradle' angeben und überschreiben sie in '~/.gradle/gradle .properties'? – Tair

+0

Nur mit zwei Eigenschaften und etwas Logik im Build-Skript. (Eigenschaftsdateien werden vor Build-Skripts ausgewertet.) –

Verwandte Themen