2011-06-28 16 views
5

Utworzono projekt biblioteki Java. Pliki binarne są dostępne pod adresem <project-dir>/bin. Klasy testowe są dostępne pod numerem <project-dir>/bin/com/myproject/test. Muszę wykluczyć archiwizację moich klas testowych. Tak, więc napisałem następujący kod:Wyklucza katalog klas testowych do archiwizacji w Ant

<target depends="build-all" name="build-dist"> 
    <jar destfile="app.jar" basedir="bin" excludes="com/myproject/test/*.class" /> 
</target> 

To działa dobrze. Ale w archiwum katalog test jest nadal dostępny. Jak to usunąć?

Dzięki.

Odpowiedz

5

Najlepszym rozwiązaniem jest przetestowanie plików Java i klas w różnych katalogach. Zamiast więc kompilować je w bin, skompiluj je w drugim kroku do bin-test. Zapewnia to także, że kod niebędący wynikiem testu nie może zobaczyć klas testowych (kompilacja nie powiedzie się, jeśli przypadkowo zaimportujesz test w klasie produkcyjnej).

5
<jar destfile="app.jar" basedir="bin" excludes="com/myproject/test/" /> 
+2

Końcowy ** nie jest potrzebny. Zobacz: http://ant.apache.org/manual/dirtasks.html#patterns 'Istnieje jeden "skrót": jeśli wzór kończy się na/lub \, to ** jest dołączane ". –

+0

Dobra wskazówka; Nie wiedziałem. Zaktualizowałem odpowiedź, dzięki. –

Powiązane problemy