2013-03-15 8 views
6

posiadający następujące w build.gradle:prawidłowo ustawione domyślne dla właściwości Gradle

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

Jak mogę $repoUrl mieć wartość domyślną file://$buildDir/repo?

Próbowałem umieścić repoUrl=file://$buildDir/repo w gradle.properties, ale nie działa tak, jak się spodziewałem, ponieważ wygląda na to, że $repoUrl nie jest rekursywnie oceniany.

Odpowiedz

2

Wygląda na to, że repoUrl=file://$buildDir/repo jest traktowany jako zwykły ciąg znaków, bez substytucji buildDir.

Jeśli może spróbuj tego:

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

albo coś takiego:

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

Hack 'replace' jest OK, dziękuję! – Tair

+0

Typo: '... replace ('$ buildDir'," $ buildDir ") ...' – Tair

+0

dziękuję, naprawiono –

1

nie można odwołać właściwości Gradle jak project.buildDir z plików właściwości. Pliki właściwości są bardzo ograniczone i generalnie zaleciłbym przechowywanie wszystkich informacji w skryptach budujących Gradle. Możesz mieć dowolną liczbę skryptów budujących i dołączać je do innych skryptów za pomocą apply from: "path/to/script".

+1

Jednym z moich Wow! S o gradle było to, że '~/.gradle/gradle.properties' ma pierwszeństwo przed '/gradle.properties', ponieważ domagam się gradle.properties :) – Tair

+0

Czy istnieje sposób na określenie wartości domyślnej dla właściwości wewnątrz' build.gradle' i zastąpienie jej w '~/.gradle/gradle .properties'? – Tair

+0

Tylko z dwiema właściwościami i pewną logiką w skrypcie budowania. (Pliki właściwości są analizowane przed tworzeniem skryptów.) –

Powiązane problemy