Note, that this recipe is not updated long time and could be outdated!
Got it.

QUIT WINDOWS, IT SEVERELY HARMS HEALTH OF YOUR COMPUTER!

COMPUTERS RUNNING WINDOWS DIE YOUNG!

Maven uz Windows

Maven ir projektu būvēšanas rīks. Salīdzinot ar Apache Ant, Maven ir noklusētais mapju izvietojums, standartizēts projekta dzīvescikls, kuru lietotājs var papildināt un mainīt. Maven noderīga iezīme ir dažādu projektu atkarību, piemēram, JAR bibliotēku, glabāšana kopīgā krātuvē.

  1. Lejuplādē instalāciju no http://maven.apache.org
  2. Atarhivēt failu maven_2.0.8_bin.zip, piemēram, zem c:/tools.
  3. Izveidot M2_HOME, kas norāda uz Maven instalēšanas vietu, piemēram, c:/tools/maven-2.0.8
  4. Pievienot jaunu mapi Path sistēmas mainīgajam mapi: %M2_HOME%/bin.

Kā pārbaudīt uzstādīšanu

  1. Aizvērt DOS un Total Commander logus, kuri tika atvērti pirms vides mainīgo (environment variables) pārdefinēšanas.
  2. Atvērt jaunu DOS logu (patvaļīgā mapē), ierakstīt komandu "mvn -version" un pārliecināties, ka atbilde izdrukā Maven versijas numuru.

Tukša projekta veidošana ar Maven

  1. Rīkam Maven ir virkne iebūvēto projektu "arhetipu", kas ļauj ar vienu komandu izveidot pareizu mapju izvietojumu, kurā atliek iekopēt savu saturu. Piemēram, JAR projekta radīšanai pietiek izpildīt šādu DOS komandu (to raksta vienā rindā):

    mvn archetype:create
    -DgroupId=com.test
    -DartifactId=mytest
    -DpackageName=com.test.mytest
  2. Šis skripts izveido  "mytest" apakšmapi. Javas failus var veidot zem mytest/src/main/java un JUnit testus testus - zem mytest/src/test/java. Maven rīks pats izveido divas failu sagataves - attiecīgi App.java un AppTest.java, kas atrodas komandrindā norādītajā Javas pakotnē com.test.mytest
  3. Lai kompilētu šo projektu un izveidotu JAR failu, atvērt DOS logu mapi "mytest", t.i., kur atrodas pom.xml fails kopā ar pareizo mapju izvietojumu.
  4. Izpildīt komandu

    mvn package
  5. Pārliecināties, ka tiek izpildīti JUnit testi un Javas kods zem mytest/src/main/java tiek arhivēts JAR failā.
  6. Pārliecināties, ka mapē c:/Documents and Settings/username/.m2 (vai arī citā mapē, kas ir ir Jūsu "mājas mape" jeb vides mainīgā HOME vērtība) izveidojas apakšmape "repository", kurā ir vairāki faili, t.sk. apakšmape junit/junit/3.8.1. JUnit ir lejupielādēts tādēļ, ka atkarība no JUnit bibliotēkas bija norādīta Maven arhetipa ģenerētajā pom.xml failā:

    <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
    </dependency>

Maven lietošana aiz ugunsmūra

Dažās programmēšanas vidēs Maven komandas (izņemot triviālo "mvn -version") nevar normāli palaist, jo Maven rīks bez atbilstošas starpniekservera konfigurācijas neprot piekļūt Internetam, t.i. nespēj savākt nedz Maven iekšējām vajadzībām nepieciešamās JAR bibliotēkas, ne arī projektiem norādītās atkarības.

  1. Uzzina starpniekserveri (proxy server) un iekopē to zem %HOME%/.m2/, izveidojot failu settings.xml:

    <settings>
    <proxies>
    <proxy>
    <protocol>http</protocol>
    <host>proxy.accenture.lv</host>
    <port>8080</port>
    <nonProxyHosts>localhost</nonProxyHosts>
    </proxy>
    </proxies>
    </settings>

Maven un Eclipse savstarpējā integrācija

Maven projektu izstrādes laikā mēdz būt ērti lietot Eclipse izstrādes vidi. Izrādās, ka abi Eclipses konfigurācijas faili - .project un .classpath, kas parasti atrodas Javas projekta saknes mapē ir iegūstami no pom.xml. Piemēram, .classpath failā tiek uzskaitītas visas JAR bibliotēkas, kas minētas pom.xml kā projekta atkarības (ieskaitot arī netiešās atkarības - JAR failus, ko projekts tieši neizmanto, bet kas savukārt nepieciešami pom.xml norādīto bibliotēku izpildei).

  1. Vienu reizi darbina šādu komandrindu:

    mvn -Declipse.workspace=d:/workspace eclipse:add-maven-repo

    Tā uzstāda Eclipse globālajā konfigurācijā ceļu uz Maven JAR failu krātuvi - "M2_REPO". Šī mainīgā vērtību pēc tam var aplūkot, paņemot Eclipse izvēlni Window -> Preferences un atverot kategoriju Java -> Build Path -> Classpath Variables.

  2. Pēc tam ikviena Maven projekta saknes mapē (kur ir pom.xml fails, var izpildīt sekojošu komandrindu:

    mvn eclipse:clean eclipse:eclipse

    Šī komanda izveido jaunus .project un .classpath failus, turklāt visiem JAR failiem ir norādīti relatīvas atrašanās vietas attiecībā pret Maven krātuvi, kas norādīts mainīgajā M2_REPO. Tiktāl par Eclipses apkalpošanu no Maven vides.

  3. Ir arī spraudnis, kurš nodrošina Mavena apkalpošanu no Eclipses - tas ļauj Eclipse vidē izpildīt Maven darbības bez atsevišķas DOS konsoles. To instalē šādi:
    1. Eclipse izvēlnē Help -> Software Updates -> Search -> Install
    2. Remote Site
    3. Name: m2 plugin
    4. URL: >
    5. Sagaida jaunākās versijas paziņojumu un lejupielādes beigas.
    6. Minētajā adresē ir arī Flash demonstrācijas.
  4. Kā iespējot (enable) Maven'a spraudni uz Eclipse:
    1. Labais klikšķis uz projekta nosaukuma -> Maven 2 -> Enable
    2. Pievienot atkarību: Labais klikšķis uz projekta nosaukuma -> Maven 2 -> Add Dependency.
    3. Maven būvēšanas mērķu izpilde: Labais klikšķis uz pom.xml un Run As -> Maven2 build, izvēlas mērķi.
  5. Projekta būvēšanas procesa laikā ir iespējams darbināt atkļūdotāju (debugger)

Trūkstošo JAR bibliotēku instalēšana

  1. Ir virkne JAR failu, kuri nav atrodami standartajos Maven krātuvēs - piemēram jo šo failu brīvu pieejamību apgrūtina licenzes nosacījumi. Tipisks piemērs ir JTA (Java Transaction API), kuru Sun Microsystems ļauj lejupielādēt tikai tiem, kuri ir izlasījuši un piekrituši licenzes līgumam.>
  1. Maven projekta būvēšanas laikā drukās paziņojumus par visiem JAR failiem, kurus neizdevās atrast Interneta krātuvēs. Lai instalētu šādus JAR failus, var izčekot sekojošu projektu - http://java-eim.googlecode.com/svn/trunk/java-eim-maven-lib un palaist visus BAT skriptus, kuri ir atrodami šī projekta saknes mapē. Piemēram, JTA bibliotēkas instalēšanai var izpildīt sekojošu komandrindu (tā jāraksta vienā rindā): >

    mvn install:install-file -DgroupId=javax.transaction
    -DartifactId=jta -Dversion=1.0.1B
    -Dpackaging=jar -Dfile=jta-1_0_1B-classes.jar

Maven lietošana bez publiskā krātuves

  1. Maven izveidoto lokālo krātuvi (mapi %HOME%/.m2/repository) var izveidot uz viena datora un tad pārkopēt uz citiem datoriem. Šajā gadījumā tālākai Maven darbināšanai Interneta pieslēgums vispār nav nepieciešams. Pirms krātuves kopēšanas uz sākotnējā datora jāpārbauda, ka visām konkrētā projekta būvēšanai nepieciešamajām Maven komandām atkarības jau ir savāktas.
  2. Lai panāktu, ka "mvn" komandrinda uz datora ar pilnīgi komplektētu krātuves nepieslēgtos Internetam (t.i. nemēģina atrast jaunākas atkarību versijas, pārbaudīt kontrolsummas, utml.), var visas komandas lietot kopā ar "-o" jeb "--offline" karodziņu. Ja trūkst kāda no Jūsu projekta atkarībām, tad minētos failus var instalēt ar Maven komandu palīdzību, kā aprakstīt iepriekšējā nodaļā (piemērs par JTA).

  
Tags Windows Rīki Uzstādīšana Programmēšana
Created by Valdis Vītoliņš on 2008-08-10 06:32
Last modified by Valdis Vītoliņš on 2021-04-13 14:30
 
Xwiki Powered
Creative Commons Attribution 3.0 Unported License