2014-05-07 8 views
5

Potrzebuję utworzyć plik w moim projekcie java w pobliżu pliku buiid.gradle. Muszę utworzyć zadanie (zadanie Groovy) w pliku build.gradle, moje zadanie musi utworzyć plik w pobliżu buiid.gradle w moim projekcie, ale nie wiem - jak uzyskać ścieżkę do pliku buiid.gradle, to jest umieszczenie mojego projekt.Jak uzyskać pełną ścieżkę do pliku build.gradle przez Groovy?

Jak uzyskać pełną ścieżkę do pliku buiid.gradle przez Groovy? Pomóż mi proszę.

Odpowiedz

17

Istnieje kilka sposobów, aby to osiągnąć.

  1. Jeśli spojrzeć na stronie Working With Files, można po prostu użyć metody file() który jest częścią obiektu Project.
  2. Jeśli spojrzysz na numer Project DSL Docs, powinieneś zobaczyć właściwość projectDir. Właściwości te są dostępne w całym skrypcie build.gradle.

Mogą być stosowane odpowiednio tak:

wyjście
task myTask << { 
    println file('.') 
    println projectDir 
} 

Byłoby

 
/full/path/to/your/project/ 
/full/path/to/your/project/ 

Gdzie ten katalog zawiera plik build.gradle gdzie zadanie jest zlokalizowany.

+1

Możesz także zacząć od powiązanej sekcji w userguide - http://www.gradle.org/docs/current/userguide/working_with_files.html – Radim

+0

@Radim Tak, to prawdopodobnie lepszy sposób, jeśli zamierzasz tworzyć akta. Zaktualizowałem moją odpowiedź. – kuporific

2

Aby uzyskać uchwyt do java.io.File reprezentujący aktualnie wykonywany .gradle plik:

def file = buildscript.sourceFile 

w moim przypadku musiałem katalog tego skryptu więc mogę zastosować inną konfigurację z taki sam katalog:

def buildCommonDir = buildscript.sourceFile.getParent() 
apply from: "$buildCommonDir/common.gradle" 

podejście współpracuje z dowolny .gradle plików, nie tylko build.gradle.