Maven hakemistorakenteet

Kirjoittelin aiemmassa artikkelissa pääkohtia Maven frameworkistä, nyt on tullut aika kirjoitella sen hakemistorakenteista.

Yksi etu Maven työkalulla perustetuissa projekteissa on, että Maven luo aina standardin hakemistorakenteen ja määrittää aina samalla tapaa minne projektikansiossa päätyy esim. lähdekoodit, resurssitiedostot, testit, web-sivut, jne. Kirjastoille ei ole kansiota koska Maven hallinnoi itse apukirjastoja ja kopioi tarvittavat mukaan vasta paketoinnin yhteydessä.

Tämä on hyödyllistä sen vuoksi, että java-maailmassa on totuttu valinnan vapauteen ja kiroukseen. Jokainen uusi IDE työväline tai plug-in tuo mukanaan aina uudet hakemistorakenteet ja eri rakenteilla teetetyn koodin yhdistäminen ja ymmärtäminen on nopeasti aika vaikeaa.

Maven luo seuraavanlaisen hakemistorakenteen:

mavenprojectstructure

Projektikansiossa on konfiguraatiotiedosto pom.xml, sekä seuraavat alikansiot:

-src (kaikki lähdekoodi menee tänne)
      - main (varsinainen ajettava koodi tänne)
            - java (java lähdekoodi tänne)
            - resources (muut luokkapolun resurssit kuten .properties tiedostot ja .xml tiedostot)
            - webapp (web-sisältö kuten HTML, jsp, kuvat, web.xml, jne)
    - test (ajettavat yksikkötestit tänne)

-target (tänne ilmestyy buildatut ja paketoidut sovelluksen osat)

pom.xml tiedosto sisältää kaikki projektin Maven-asetukset, kuten projektin nimen, erilaiset käytössä olevat plug-init, sekä tärkeimpänä riippuvuudet, eli eri kirjastojen versiot.

Kun kaikki on paikallaan voit suorittaa projektikansiossa maven operaatioita kuten:

  • mvn compile
  • mvn test
  • mvn package
  • mvn install
Advertisements

2 thoughts on “Maven hakemistorakenteet

  1. Wow! Hei löysin vasta nyt tämän, aivan helmi blogi. T. Wanna-be-full-stacker 😉 Kirjottelen todennäköisesti pian myös joko koodaamisesta yleisellä tasolla tai sitten hieman vastaavista jutuista. Mutta ensin tutustun kunnolla tähän sisältöön. Kiitoksia loistavasta sisällöstä!

    • Hehee, hieno homma! 🙂 Mullakin tulossa lähiaikoina lisää tutuista teemoista, ml. Maven, Angular, Spring Boot, ja kaikenmuotoinen testaus 🙂

Vastaa

Täytä tietosi alle tai klikkaa kuvaketta kirjautuaksesi sisään:

WordPress.com-logo

Olet kommentoimassa WordPress.com -tilin nimissä. Log Out / Muuta )

Twitter-kuva

Olet kommentoimassa Twitter -tilin nimissä. Log Out / Muuta )

Facebook-kuva

Olet kommentoimassa Facebook -tilin nimissä. Log Out / Muuta )

Google+ photo

Olet kommentoimassa Google+ -tilin nimissä. Log Out / Muuta )

Muodostetaan yhteyttä palveluun %s