Apache Ant jest całkowicie darmowym, wieloplatformowym i otwartym źródłem oprogramowania wiersza polecenia implementowanym w Javie, rozprowadzanym wraz z projektem Apache i zaprojektowanym od podstaw jako potężny budować system kompilacji aplikacji zapisanych w języku programowania Java.
Podobnie jak GNU make
Oprogramowanie Apache Ant, które jest programem wiersza poleceń, jest dość podobne do GNU kompilatora GNU open source, ale wiadomo, że ma dużo lepszą obsługę różnych problemów między różnymi platformami podczas tworzenia aplikacji Java.
Idealny system kompilacji dla wielu projektów Java
Jako projekt Apache, oprogramowanie Apache Ant jest doskonałym systemem kompilacji dla wielu projektów Java w Apache, a także licznych innych niezależnych projektach open source zapisanych w języku programowania Java.
Pierwsze kroki z Apache Ant
Niezależnie od tego, czy jesteś użytkownikiem końcowym, który potrzebuje Apache Ant, aby skompilować źródła aplikacji napisanej w Javie, czy jesteś początkującym programistą Java, możesz łatwo użyć Ant Apache na wybranym systemie operacyjnym (zobacz poniżej dla obsługiwanych systemów operacyjnych).
Dla wygody użytkownika oprogramowanie jest dystrybuowane jako wstępnie zbudowany binarny, który może być używany w dowolnym systemie operacyjnym GNU / Linux, 32 i 64-bitowe smaki są obsługiwane. Oczywiście użytkownicy zaawansowani, którzy chcą zoptymalizować instalację, mogą pobrać pakiet źródłowy z firmy Softoware.
Wystarczy uruchomić program & lsquo; ant & rsquo; polecenie w emulatorze terminali, aby wyświetlić komunikat o użytkowaniu i dostępne opcje wiersza polecenia. Należy pamiętać, że w niektórych dystrybucjach Ant potrzebuje oprogramowania OpenJDK.
Działa na GNU / Linux, Microsoft Windows i Mac OS X
W Javie Apache Ant jest oprogramowaniem wieloplatformowym działającym na dowolnym komputerze, na którym są obsługiwane środowiska JRE (Java Runtime Environment), w tym wszystkie dystrybucje GNU / Linuksa, a także Mac OS X i Systemy operacyjne Microsoft Windows.
Co nowego w tym wydaniu:
- Zmiany, które mogłyby złamać starsze środowiska:
- atrybut przedrostkówWartości nie działał zgodnie z oczekiwaniami, gdy ustawiono wartość false (wartość domyślna). Jest całkiem prawdopodobne, że istnieją istniejące pliki budujące polegające na niewłaściwym zachowaniu i oczekują, że Ant rozwiązuje tę wartość względem właściwości zdefiniowanych w pliku właściwości - te pliki build muszą teraz wyraźnie ustawić wartość atrybutu prefixValues na wartość true. Raport Bugzilli 54769
- przy dopasowywaniu wpisu zip / tarfileset względem wzoru wiodący ukośnik zostanie usunięty z nazwy wpisu. Większość archiwów nie zawiera ścieżek z wiodącymi ukośnikami. Może to spowodować włączenie / wykluczenie wzorców zaczynających się od / zakończenia dopasowywania dowolnego elementu. Takie wzorce działały przypadkowo i tylko na platformach z wieloma korzeniem systemu plików. Raport Bugzilli 53949
- DirectoryScanner, a tym samym plik / dirset będzie teraz cicho upuszczał wszystkie obiekty systemu plików, które nie są ani plikami ani katalogami zgodnie z plikiem java.io.File. Zapobiega to odczytywaniu przez Ant rur, które mogą prowadzić do zablokowania lub innego nieokreślonego zachowania. Raport Bugzilli 56149
- BuildFileTest i BaseSelectorTest zostały wycofane na rzecz BuildFileRule i BaseSelectorRule, a testy poprzednio rozszerzone na te podstawowe testy zostały przetworzone na testy JUnit 4 przy użyciu nowej "reguły". Wszelkie zewnętrzne testy, które nie podziały testu w przestrzeni roboczej Ant, a nie BuildFileTest, będą musiały być zmienione, aby albo użyć adnotacji JUnit4, albo zmodyfikować, aby rozszerzyć BuildFileTest bezpośrednio. Nie będzie to miało wpływu na testy, które są wykonywane przez zadania junit lub batchtest, które nie są specjalnie testujące kod Ant.
- Poprawiono błędy:
- / nie powiodło się, gdy plik importujący został załadowany z URI lub słoika i zaimportował plik z lokalnego systemu plików za pośrednictwem ścieżki bezwzględnej. Raport Bugzilli 50953
- mógł importować ten sam zasób dwa razy podczas importowania za pośrednictwem różnych typów zasobów. Raport Bugzilli 55097
- kilka wywołań do pliku # mkdirs może stać się ofiarą stanu wyścigu, w którym inny wątek utworzył już ten sam katalog. Raport Bugzilli 55290
- utworzyło "/", a nie "./" w katalogu nadrzędnym danego jawerium. Raport Bugzilli 55049
- 's fixlastline = "true" nie działał przy użyciu niektórych czytników filtra. Raport Bugzilli 54672
- kilka miejsc, w których zasoby są odczytywane z słoików, wyraźnie wyłączyć buforowanie, aby uniknąć problemów z ładowaniem słoików. Raport Bugzilli 54473
- AntClassloader zignoruje teraz pliki będące częścią ścieżki klasy, ale nie zipami podczas skanowania zasobów. Kiedyś rzucał wyjątek. Raport Bugzilli 53964
- spowodował NullPointerException, gdy nie został ustawiony żaden destdir. Raport Bugzilli 55949
- nadal zawierał główny fragment pliku zbiorczego, jeśli nie ma zagnieżdżonego atrybutu manifestu lub manifestu. Raport Bugzilli 54171
- odczytywanie argumentów kompilatora stało się bardziej defensywne w Bugzilli Report 53754
- bez siły = "true" nie tylko nie zastąpi oczekiwanego pliku tylko do odczytu, ale także usunie istniejący plik. Raport Bugzilli 53095
- usunie symboliczne linki do plików nie włączonych. Nadal będzie usuwać symlink do katalogów, które byłyby przestrzegane, nawet jeśli nie zostały wyraźnie włączone. wykluczające-wzorce mogą być nadal używane do zachowania symbolicznych linków. Raport Bugzilli 53959
- Czasami operacje kopiowania przy użyciu NIO FileChannels nie działają. Ant będzie teraz próbował użyć operacji kopiowania strumieniowego jako kopii zapasowej, gdy kopia oparta na kanale nie powiedzie się. Raporty Bugzilli 53102 i 54397
- Javadoc.postProcessGeneratedJavadocs () nie powiedzie się dla klas, które rozszerzają raport Javadoc Bugzilla 56047
- TarInputStream odczytuje teraz archiwa utworzone przy użyciu implementacji tar, które kodują duże liczby, nie dodając końcowego NUL.
- metoda isExists () metody URLResource zwróciła fałszywe alarmy w przypadku adresów HTTP i FTP.
- Inne zmiany:
- początkowe wsparcie dla języka Java 1.9
- może opcjonalnie przekazać System.in do zdalnego procesu Raport Bugzilla 55393
- obsługuje obecnie przechwytywanie danych wyjściowych błędów wykonywanego procesu i ustawianie właściwości z kodu powrotnego. Raport Bugzilli 48478
- ma teraz opcję niepowodzenia, jeśli javadoc wyświetli ostrzeżenia. Raport Bugzilli 55015
- ma nowy atrybut outputencoding. Raport Bugzilli 39541
- zmienia się na JUnitTestRunner i PlainJUnitResultFormatter, aby mniej prawdopodobne były błędy OutOfMemoryErrors. Raport Bugzilli 45536
- zmienia się na DOMElementWriter, aby zmniejszyć prawdopodobieństwo wystąpienia błędów OutOfMemoryErrors. Raport Bugzilli 54147
- ma nowy atrybut binaryOutput, który zapobiega dzieleniu wyjścia na linie. Zapobiega to uszkodzeniom binarnym, ale może prowadzić do pomyłki i normalnego wyjścia. Raport Bugzilli 55667 Bugzilla Report 56156
- zagnieżdżone elementy mają teraz opcjonalny atrybut inputEncoding, który może być używany do określania kodowania odczytanych plików, które nie używają domyślnego kodowania platformy. Raport Bugzilli 56258
- Zadanie jawnie akceptuje i obsługuje kodowanie zawartości gzip. Raport Bugzilli 49453
- Nowy typ zbioru zasobów działa jak unii s i s, które mają tę samą konfigurację, ale mają różne katalogi bazowe. Raport Bugzilli 48621
- ma cichy atrybut, który powoduje, że dziennik zadań jest błędny tylko wtedy, gdy jest włączony. Żądany wniosek GitHub # 1
- ma teraz atrybut wątków pozwalający na uruchamianie testów w kilku wątkach. Raport Bugzilli 55925
- dodanie nowej klasy ProcessUtil dostarczającej identyfikator procesu bieżącego procesu
- zmienia się, aby równolegle uruchamiać testy równolegle JUnit TestCases Ant, używając unikalnych tymczasowych katalogów
- Zmiany, które mogłyby złamać starsze środowiska:
- atrybut przedrostkówValues nie działał zgodnie z oczekiwaniami, gdy ustawiono wartość false (wartość domyślna). Jest całkiem prawdopodobne, że istnieją istniejące pliki budujące polegające na niewłaściwym zachowaniu i oczekują, że Ant rozwiązuje tę wartość względem właściwości zdefiniowanych w pliku właściwości - te pliki build muszą teraz wyraźnie ustawić wartość atrybutu prefixValues na wartość true. Raport Bugzilli 54769
- przy dopasowywaniu wpisu zip / tarfileset względem wzoru wiodący ukośnik zostanie usunięty z nazwy wpisu. Większość archiwów nie zawiera ścieżek z wiodącymi ukośnikami. Może to spowodować włączenie / wykluczenie wzorców zaczynających się od / zakończenia dopasowywania dowolnego elementu. Takie wzorce działały przypadkowo i tylko na platformach z wieloma korzeniem systemu plików. Raport Bugzilli 53949
- DirectoryScanner, a tym samym plik / dirset będzie teraz cicho upuszczał wszystkie obiekty systemu plików, które nie są ani plikami ani katalogami zgodnie z plikiem java.io.File. Zapobiega to odczytywaniu przez Ant rur, które mogą prowadzić do zablokowania lub innego nieokreślonego zachowania. Raport Bugzilli 56149
- BuildFileTest i BaseSelectorTest zostały wycofane na rzecz BuildFileRule i BaseSelectorRule, a testy poprzednio rozszerzone na te podstawowe testy zostały przetworzone na testy JUnit 4 przy użyciu nowej "reguły". Wszelkie zewnętrzne testy, które nie podziały testu w przestrzeni roboczej Ant, a nie BuildFileTest, będą musiały być zmienione, aby albo użyć adnotacji JUnit4, albo zmodyfikować, aby rozszerzyć BuildFileTest bezpośrednio. Nie będzie to miało wpływu na testy, które są wykonywane przez zadania junit lub batchtest, które nie są specjalnie testujące kod Ant.
- Poprawiono błędy:
- / nie powiodło się, gdy plik importujący został załadowany z URI lub słoika i zaimportował plik z lokalnego systemu plików za pośrednictwem ścieżki bezwzględnej. Raport Bugzilli 50953
- mógł importować ten sam zasób dwa razy podczas importowania za pośrednictwem różnych typów zasobów. Raport Bugzilli 55097
- kilka wywołań do pliku # mkdirs może stać się ofiarą stanu wyścigu, w którym inny wątek utworzył już ten sam katalog. Raport Bugzilli 55290
- utworzyło "/", a nie "./" w katalogu nadrzędnym danego jawerza. Raport Bugzilli 55049
- 's fixlastline = "true" nie działał przy użyciu niektórych czytników filtra. Raport Bugzilli 54672
- kilka miejsc, w których zasoby są odczytywane z słoików, wyraźnie wyłączyć buforowanie, aby uniknąć problemów z ładowaniem słoików. Raport Bugzilli 54473
- AntClassloader zignoruje teraz pliki będące częścią ścieżki klasy, ale nie zipami podczas skanowania zasobów. Kiedyś rzucał wyjątek. Raport Bugzilli 53964
- spowodował NullPointerException, gdy nie został ustawiony żaden destdir. Raport Bugzilli 55949
- nadal zawierał główny fragment pliku zbiorczego, jeśli nie ma zagnieżdżonego atrybutu manifestu lub manifestu. Raport Bugzilli 54171
- odczytywanie argumentów kompilatora stało się bardziej defensywne w Bugzilli Report 53754
- bez siły = "true" nie tylko nie zastąpi oczekiwanego pliku tylko do odczytu, ale także usunie istniejący plik. Raport Bugzilli 53095
- usunie symboliczne linki do plików nie włączonych. Nadal będzie usuwać symlink do katalogów, które byłyby przestrzegane, nawet jeśli nie zostały wyraźnie włączone. wykluczające-wzorce mogą być nadal używane do zachowania symbolicznych linków. Raport Bugzilli 53959
- Czasami operacje kopiowania przy użyciu NIO FileChannels nie działają. Ant będzie teraz próbował użyć operacji kopiowania strumieniowego jako kopii zapasowej, gdy kopia oparta na kanale nie powiedzie się. Raporty Bugzilli 53102 i 54397
- Javadoc.postProcessGeneratedJavadocs () nie powiedzie się dla klas, które rozszerzają raport Javadoc Bugzilla 56047
- TarInputStream odczytuje teraz archiwa utworzone przy użyciu implementacji tar, które kodują duże liczby, nie dodając końcowego NUL.
- metoda isExists () metody URLResource zwróciła fałszywe alarmy w przypadku adresów HTTP i FTP.
- Inne zmiany:
- początkowe wsparcie dla języka Java 1.9
- może opcjonalnie przekazać System.in do zdalnego procesu Raport Bugzilla 55393
- obsługuje obecnie przechwytywanie danych wyjściowych błędów wykonywanego procesu i ustawianie właściwości z kodu powrotnego. Raport Bugzilli 48478
- ma teraz opcję niepowodzenia, jeśli javadoc wyświetli ostrzeżenia. Raport Bugzilli 55015
- ma nowy atrybut outputencoding. Raport Bugzilli 39541
- zmienia się na JUnitTestRunner i PlainJUnitResultFormatter, aby mniej prawdopodobne były błędy OutOfMemoryErrors. Raport Bugzilli 45536
- zmienia się na DOMElementWriter, aby zmniejszyć prawdopodobieństwo wystąpienia błędów OutOfMemoryErrors. Raport Bugzilli 54147
- ma nowy atrybut binaryOutput, który zapobiega dzieleniu wyjścia na linie. Zapobiega to uszkodzeniom binarnym, ale może prowadzić do pomyłki i normalnego wyjścia. Raport Bugzilli 55667 Bugzilla Report 56156
- zagnieżdżone elementy mają teraz opcjonalny atrybut inputEncoding, który może być używany do określania kodowania odczytanych plików, które nie używają domyślnego kodowania platformy. Raport Bugzilli 56258
- Zadanie jawnie akceptuje i obsługuje kodowanie zawartości gzip. Raport Bugzilli 49453
- Nowy typ zbioru zasobów działa jak unii s i s, które mają tę samą konfigurację, ale mają różne katalogi bazowe. Raport Bugzilli 48621
- ma cichy atrybut, który powoduje, że dziennik zadań jest błędny tylko wtedy, gdy jest włączony. Żądany wniosek GitHub # 1
- ma teraz atrybut wątków pozwalający na uruchamianie testów w kilku wątkach. Raport Bugzilli 55925
- dodanie nowej klasy ProcessUtil dostarczającej identyfikator procesu bieżącego procesu
- zmienia się, aby równolegle uruchamiać testy równolegle JUnit TestCases Ant, używając unikalnych tymczasowych katalogów
- Poprawiono błędy:
- połknął kod stanu zagnieżdżonych zadań.
- stan wyścigu mógł sprawić, że zadania równoległych kompilacji ingerują ze sobą.
- Poczta pocztowa
- nadal nie działa poprawnie podczas korzystania z protokołu smtp.
- przy użyciu atrybutów należących do if i chyba że obszary nazw wykonane makrodef nie działają.
- Zmiany w zadaniach dotyczących 1,8-wolnego polecenia spowodowały zwolnienie exec do przeszukiwania
- Apt nie jest dostępny w wersji JDK 1.8
- Inne zmiany:
- Dokumentacja rozwiązuje problem jeśli / chyba że atrybuty. PR 55359.
- wpisy tar o długich nazwach linków są teraz traktowane w taki sam sposób, jak wpisy o długich nazwach.
- Dodanie atrybutu "skipNonTests" do zadań, które umożliwiają pomijanie zajęć, które nie zawierają testów.
- obsługuje teraz zagnieżdżone do określania filtrów.
- .
- budowanie instalatora pkg dla systemu Mac OS X
- nowe, jeśli i jeśli przestrzenie nazw XML nie będzie dostępne we wszystkich zadaniach i elementach zagnieżdżonych
- Domyślnie rozszerzenia Zip64 są domyślnie wyłączone
- Ładowanie zewnętrznych zależności ustalonych w zadaniach JUnit
- Arkusze stylów domyślnych JUnitreport są teraz kompatybilne z JDK 1.7
- Zalecamy uaktualnienie do jsch 0.1.50 dla użytkowników zadań ssh / scp w Javie 1.7
- Inne poprawki i ulepszenia udokumentowane w WHATSNEW
- To jest poprawka błędów zabezpieczeń poprawiająca potencjał ataku odmowy usługi w zadaniu bzip2.
- Poprawa wydajności w skanowaniu katalogowym.
- Zadanie XSLT ponownie znosi klasę (bugrep 49271).
- Zniesienie rozróżnienia między zadaniami podstawowymi a zadaniami opcjonalnymi.
- Liczne poprawki błędów i ulepszeń, udokumentowane w Bugzilli iw WHATSNEW.
-
Co nowego w wersji 1.7.1:
- wydajność.
- Obsługa Java 6 została poprawiona, a JavaFX jest obsługiwane przez zadanie skryptu.
Wymagania :
- Środowisko wykonawcze Oracle Java Standard Edition
Co nowego w wersji 1.9.4:
Co nowego w wersji 1.9.3:
Można teraz wpisać params
Co nowego w wersji 1.9.1:
Co nowego w wersji 1.8.4:
Komentarze nie znaleziono