2012-03-13 16 views
14

Chcę dodać niektóre dodatkowe funkcje usuwania do czystego zadania (dla kompilacji Java).Gradle - Usuń nie działa

Dlatego próbuję dodać następujące informacje do mojego skryptu gradle build.

clean.doLast{ 
    delete ('test.txt') 
} 

Kiedy tun „czystego” zadanie mój przykładowy plik nie zostanie usunięty ... Ja też nie dostać jakikolwiek komunikat o błędzie wskazuje, co się stało.

Gdybym spróbuj:

task deleteStuff(type: Delete) { 
    delete 'test.txt' 
} 

Co zrobić pracę.

Czy mogę nie dodawać (przez doLast) funkcji do zadań? Jaki jest właściwy sposób robienia tego (bez hakowania w zadaniach Ant).

Odpowiedz

15

W tych dwóch fragmentach kodu nie wywołuje się Project.delete(), ale Delete.delete(). Innymi słowy, konfigurujesz zadanie Delete. Wykonanie tego po wykonaniu zadania Delete (jak w pierwszym fragmencie) jest za późno.

W przypadku zadania Delete nie ma powodu, aby dodawać operację delete za pomocą doLast. Twój drugi fragment jest zdecydowanie lepszy. W przypadku innych zadań podejście doLast zadziała, ponieważ nie ma ono metody delete. Możesz też ujednoczyć z project.delete().

+0

Peter, dziękuję za wzmiankę o projekcie.delete do disambiguate. To wyjaśniło wiele moich nieporozumień. –

1

Jeśli powodem jest uniknięcie spędzania czasu w fazie przygotowawczej (która jest wykonywana dla każdego zadania), do pierwszego zadania można użyć polecenia Usuń. Więc używanie clean.doFirst zamiast clean.doLast w powyższym przykładzie będzie działać.

Powiązane problemy