2012-04-18 8 views
8

Ich migriere von Ant/Ivy nach Gradle und versuche zu verstehen, wie Sie einen relativen Pfad zum lokalen Ivy Repo angeben. Standalone Ivy setzt die Variable ${ivy.default.ivy.user.dir} standardmäßig auf .ivy2 im Home-Verzeichnis des Benutzers und platziert das lokale Repo dort.Wie wird ein relativer Pfad zum lokalen Ivy Repo in Gradle angegeben?

Ich kann dies simulieren, wie folgt:

repositories { 
    ivy { 
     url "C:/Users/RYAN/.ivy2/local" 
     layout 'pattern', { 
      artifact "[organisation]/[module]/[revision]/[artifact](-[classifier])-[revision](.[ext])" 
      ivy "[organisation]/[module]/[revision]/[artifact](-[classifier])-[revision](.[ext])" 
    } 
} 

Aber ich will nicht einen absoluten Pfad angeben. Ich sehe, es gibt eine GRADLE_USER_HOME Umgebungsvariable, aber Gradle setzt es nicht standardmäßig - ich muss es Kommandozeile angeben.

Bietet Gradle eine Möglichkeit, auf ein lokales Standard Ivy Repo zuzugreifen?

Antwort

11

Wie wäre es mit:

url "${System.properties['user.home']}/.ivy2/local" 
+0

Danke, das funktioniert. Ich möchte immer noch auf einige der Ivy _default_ Eigenschaften zugreifen/verwenden, aber dies funktioniert, um den absoluten Pfad zu vermeiden. –

+0

Ich glaube nicht, Gradle hat so eine Abkürzung ... (also wie die mavenCentral() Repo one) ... Sie können diese Funktion immer auf den Gradle Foren anfordern. – vicsz

+0

Optional ... können Sie immer sicherstellen, dass die Systemeigenschaft ivy.default.ivy.user.dir gesetzt ist. Verwenden Sie sie, um "user.home" in meinem Beispiel zu ersetzen. – vicsz