Sugerowałbym również użycie jakiegoś narzędzia do budowania ( Ant lub Maven , Ant jest już sugerowane i jest łatwiejsze do rozpoczęcia) lub IDE, które obsługuje kompilację (Eclipse używa kompilacji przyrostowej ze strategią uzgadniania, a ty nawet nie musisz pamiętaj o naciśnięciu dowolnego „Kompiluj” ).
Korzystanie z Javac
Jeśli chcesz wypróbować coś dla większego projektu i nie masz w pobliżu żadnych odpowiednich narzędzi do kompilacji, zawsze możesz użyć małej sztuczki, która javac
oferuje: nazwy klas do kompilacji można określić w pliku. Po prostu musisz przekazać nazwę pliku do javac
z @
przedrostkiem.
Jeśli możesz utworzyć listę wszystkich *.java
plików w projekcie, jest to łatwe:
# Linux / MacOS
$ find -name "*.java" > sources.txt
$ javac @sources.txt
:: Windows
> dir /s /B *.java > sources.txt
> javac @sources.txt
- Zaletą jest to, że jest to szybkie i łatwe rozwiązanie.
- Wadą jest to, że musisz ponownie
sources.txt
generować plik za każdym razem, gdy tworzysz nowe źródło lub zmieniasz nazwę istniejącego pliku, co jest łatwe do zapomnienia (a więc podatne na błędy) i męczące zadanie.
Korzystanie z narzędzia do budowania
Na dłuższą metę lepiej jest używać narzędzia, które zostało zaprojektowane do tworzenia oprogramowania.
Korzystanie z Ant
Jeśli utworzysz prosty build.xml
plik, który opisuje, jak zbudować oprogramowanie:
<project default="compile">
<target name="compile">
<mkdir dir="bin"/>
<javac srcdir="src" destdir="bin"/>
</target>
</project>
możesz skompilować całe oprogramowanie, uruchamiając następujące polecenie:
$ ant
- Zaletą jest to, że używasz standardowego narzędzia do budowania, które można łatwo rozszerzyć.
- Wadą jest to, że musisz pobrać, skonfigurować i nauczyć się dodatkowego narzędzia. Zauważ, że większość IDE (takich jak NetBeans i Eclipse) oferuje świetne wsparcie dla pisania plików kompilacji, więc nie musisz niczego pobierać w tym przypadku.
Korzystanie z Maven
Konfiguracja i praca z Maven nie są takie trywialne, ale nauka tego się opłaca. Oto świetny samouczek, aby rozpocząć projekt w ciągu 5 minut .
- Jego główną zaletą (dla mnie) jest to, że obsługuje również zależności, więc nie będziesz musiał pobierać więcej plików Jar i zarządzać nimi ręcznie, a uznałem, że jest to bardziej przydatne do budowania, pakowania i testowania większych projektów.
- Wadą jest to, że ma stromą krzywą uczenia się, a jeśli wtyczki Maven lubią tłumić błędy :-) Inną rzeczą jest to, że całkiem sporo narzędzi działa również z repozytoriami Maven (jak Sbt for Scala, Ivy for Ant, Graddle for Groovy) .
Korzystanie z IDE
Teraz to, co może zwiększyć produktywność rozwoju. Jest kilka alternatyw open source (jak Eclipse i NetBeans , wolę tę pierwszą), a nawet komercyjne (jak IntelliJ ), które są dość popularne i potężne.
Mogą zarządzać budowaniem projektu w tle, więc nie musisz zajmować się wszystkimi sprawami wiersza poleceń. Jednak zawsze przydaje się, jeśli wiesz, co faktycznie dzieje się w tle, dzięki czemu możesz znaleźć sporadyczne błędy, takie jak plik ClassNotFoundException
.
Jedna dodatkowa uwaga
W przypadku większych projektów zawsze zaleca się korzystanie ze środowiska IDE i narzędzia do kompilacji. Pierwsza z nich zwiększa produktywność, podczas gdy druga umożliwia korzystanie z różnych IDE w projekcie (np. Maven może generować deskryptory projektów Eclipse za pomocą prostego mvn eclipse:eclipse
polecenia). Co więcej, posiadanie projektu, który można przetestować / zbudować za pomocą polecenia w jednym wierszu, jest łatwe do wprowadzenia dla nowych kolegów i na przykład do serwera ciągłej integracji. Bułka z masłem :-)