blablajar Na koju tu dodatnu java datoteku misliš?
Koliko se sjećam na prvom predavanju je napravio sljedeće:
Stvorio je novi maven projekt sa koordinatama (groupId : artifactId : version) = (hr.fer.zemris.java.p01 : numbers : 1.0). Dakle u korijenskom direktoriju svog projekta imao je datoteku pom.xml
i poddirektorij .\src
(.
being korijenski direktorij tvog projekta). Prije izgradnje (buildanja) mavenovog projekta (odnosno prije nego što je opalio naredbu mvn compile
) još nema poddirektorija .\target
. Tada je htio stvoriti novu klasu Numbers, koju je, prema propisanoj strukturi mavenovih projekata, stvorio na lokaciji (mislim da je tak išlo, correct me if I’m wrong) .\src\main\java\hr\fer\zemris\java\p01\Numbers.java
. Zašto baš tako? Pa propisana struktura mavenovih projekata kaže, izvorne kodove svojih java aplikacija/biblioteka stavljaj u .\src\main\java
(KLIK). Sve dalje od toga, dakle ovaj dio hr\fer\zemris\java\p01\Numbers.java
ima direktorijsku strukturu koja prati naziv paketa klase Numbers. To znači da onda prva linija koda u Numbers.java
mora biti package hr.fer.zemris.java.p01;
U toj klasi Numbers je zatim samo stvorio javnu statičku metodu koja određuje je li zadani argument, prirodan broj, prost ili nije (public static void isPrime(int n) {...}
).
Nisam siguran je li još stvorio i main metodu, ili možda novu klasu u istom projektu koja ima main metodu. Mislim da čak i jest (to je možda ta druga .java datoteka koju misliš, nisam ziher), al uglavnom poanta prvog predavanja je bila kako napraviti dva projekta i kako uključiti jedan u drugi.
Uglavnom, to je spremio i kompajlirao tako što je u terminalu (pozicioniran unutar korijenskog direktorija svog projekta) kucao mvn compile
, što je stvorilo dodatnu strukturu poddirektorija .\target
koja ima kompajlirane .class fajlove (bajtkod). Nakon toga je još pokazao kako iz mavenovog projekta stvoriti JAR arhivu sa mvn package
, te instalaciju tog projekta u lokalni repozitorij na disku sa mvn install
Onda je napravio drugi projekt koji će koristiti tu biblioteku (klasa Numbers i metoda isPrime) koju smo napisali u prvom projektu. Onda je stvorio novi maven projekt na isti način (opet stvori pom.xml sa nekim drugim koordinatama i src poddirektorijsku strukturu) i u pom.xml je dodao ovisnost o prvom projektu kako bismo mogli koristiti funkcionalnost iz klase Numbers. Kako smo ga prethodno instalirali u lokalni mavenov repozitorij na disku, možemo ga koristiti. U tom novom projektu je onda stvorio klasu Demo koja ima main metodu i koja koristi funkcionalnost iz proslog projekta (metoda isPrime).
Jos je usput pokazivao kako sa javac
i java
kompajlirati i pokrenuti program (znači bez mvn install) koji ovisi o drugim JAR bibliotekama.
To je pretty much to što se tiče prvog predavanja