JavaRush /Java Blog /Random-TL /Bahagi 4: Mga Pangunahing Kaalaman sa Maven

Bahagi 4: Mga Pangunahing Kaalaman sa Maven

Nai-publish sa grupo
Ang materyal na ito ay bahagi ng seryeng "Introduction to Enterprise Development". Mga nakaraang artikulo: Bahagi 4. Mga Pangunahing Kaalaman sa Maven - 1Ang Maven ay isang tool para sa pamamahala at pagbuo ng mga proyekto - isang tunay na katulong sa Java programmer. Ginagawa nitong mas madali ang buhay para sa developer sa lahat ng yugto ng trabaho: mula sa paglikha ng istraktura ng proyekto at pagkonekta sa mga kinakailangang library hanggang sa pag-deploy ng produkto sa server. Kapag nagtatrabaho sa anumang balangkas, kakailanganin mong gamitin ang Maven. Kaya tingnan natin ang mga pangunahing pag-andar nito ngayon at tingnan kung paano dapat gamitin ang mga ito.

Hakbang-hakbang na pag-install ng Maven

  1. Una kailangan mong i-install ang Maven sa pamamagitan ng pag-download nito mula sa link na ito .

  2. Susunod, kailangan mong i-unpack ang na-download na archive at itakda ang M2_HOME environment variable sa isang link sa lokasyon ng na-unpack na archive. Halimbawa, C:\Program Files\maven\

  3. Upang suriin na ang lahat ay naka-install, isulat sa command line:

    mvn-version

  4. Kung ang impormasyon ng bersyon para sa Maven, Java, atbp. ay ipinapakita, handa ka nang umalis.

  5. Ngayon buksan ang IntelliJIDEA at lumikha ng isang bagong proyekto. Sa unang window, piliin ang Maven:

    Bahagi 4. Maven Basics - 2
  6. I-click ang Susunod at punan ang sumusunod na dialog box:

    Bahagi 4. Mga Pangunahing Kaalaman sa Maven - 3
  7. Susunod, lumikha ng isang proyekto sa kinakailangang lokasyon bilang pamantayan.

    Matapos malikha ang proyekto, bigyang-pansin ang istraktura nito:

    Bahagi 4. Maven Basics - 4
Ito ang karaniwang istraktura para sa isang proyekto ng Maven :
  • ang src/main/java folder ay naglalaman ng mga klase ng java;
  • sa src/main/resources - mga mapagkukunan na ginagamit ng aming application (mga HTML na pahina, larawan, style sheet, atbp.);
  • src/test - para sa mga pagsubok.
Bigyang-pansin din ang file na tinatawag na pom.xml . Ito ang pangunahing file para sa pamamahala ng Maven . Ang buong paglalarawan ng proyekto ay nakapaloob dito. Wala pang masyadong impormasyon doon, ngunit idaragdag namin ito ngayon.

Pamamahala ng Dependency sa Maven

Maaaring nakita mo ang pariralang "tagapamahala ng dependency" o "tagapamahala ng dependency". Kayang kaya ni Maven ang lahat. Salamat sa Maven, hindi mo kailangang gumastos ng maraming oras sa paghahanap para sa kinakailangang library sa Internet, pag-download nito, at pagkatapos ay ikonekta ito sa proyekto: idagdag lamang ang kinakailangang isa sa listahan ng mga dependency ng Maven. Ang mga dependency ay nakasulat sa mga dependencies XML node. Sabihin nating kailangan mo ang Apache Commons IO library sa iyong proyekto para sa pinasimpleng trabaho sa mga file. Upang magdagdag ng library, sumulat ng limang linya sa pom.xml:
<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Ang iyong pom.xml ay dapat na magmukhang ganito:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Pagkatapos nito, payagan ang IntelliJ IDEA na mag-import ng dependency (dapat lumabas ang isang dialog box sa kanang sulok sa ibaba). Ngayon ang library ay handa nang gamitin:
import org.apache.commons.io.FileUtils;

import java.io.File;

public class TestMaven {
   public static void main(String[] args) {
       File tempDirectory = FileUtils.getTempDirectory();
   }
}
Ang lahat ng kasunod na dependencies ay dapat ding nakasulat sa loob ng <dependencies> tag. Maaaring nagtataka ka: paano mo malalaman kung anong impormasyon ang kailangan mong isama tungkol sa isang library sa loob ng tag na <dependency>? Simple lang ang lahat dito. Sa ganitong mga kaso, tatlong parameter ang palaging tinutukoy: groupId, artifactId at bersyon. Maaari mong malaman ang mga parameter na ito sa dalawang paraan:
  1. Sa website ng library. Kung kailangan namin ng Apache Commons IO, pumunta sa opisyal na website at piliin ang tab na Dependency Information. Ang lahat ng kinakailangang impormasyon ay narito - maaari mo lamang itong kopyahin at idagdag ito sa aming seksyon ng dependencies.

  2. Sa repositoryo ng Maven . Ipasok ang "apache commons io" sa paghahanap at makikita mo ang lahat ng magagamit na bersyon ng library. Pagkatapos piliin ang kailangan mo, kopyahin lamang:

    <dependency>
               <groupId>commons-io</groupId>
               <artifactId>commons-io</artifactId>
               <version>2.6</version>
           </dependency>

    at idagdag sa iyong pom.xml.

Mga uri ng mga repositoryo ng Maven

Ito ay nagkakahalaga ng pagbanggit muli sa Maven repository, dahil mayroon kaming dalawa sa kanila - panlabas (global) at lokal, sa iyong computer. Ang lahat ng mga aklatan na idinagdag mo sa iyong mga proyekto ay naka-save sa lokal na imbakan. Kapag nagdagdag si Maven ng kinakailangang dependency sa isang proyekto, sinusuri muna nito ang lokal na repositoryo para sa pagkakaroon ng naturang library, at kung hindi niya ito mahahanap doon, lumiliko ito sa panlabas. Tulad ng nakikita mo, maaari mong gamitin ang Maven upang magdagdag ng mga dependency, ngunit hindi lang iyon ang magagawa nito.

Pagbuo ng Java Project Gamit ang Maven

Ang tampok na ito ay maaaring mukhang walang kabuluhan sa isang baguhan. Bakit kailangan ito kung may IDE? Pero hindi! Una, ang server kung saan kakailanganin mong buuin ang application ay maaaring hindi lamang magkaroon ng kapaligiran sa pag-unlad, kundi pati na rin ng isang graphical na interface. Pangalawa, sa malalaking proyekto, mas nakayanan ni Maven ang mga gawain ng pag-assemble ng proyekto. Samakatuwid, huwag nating pahirapan ang ating sarili sa paghihintay, ngunit isaalang-alang ang proseso ng pagbuo ng isang aplikasyon gamit ang Maven.

Mga yugto

Ang proseso ng pagbuo ng isang aplikasyon ay tinatawag na ikot ng buhay ng isang proyekto ng Maven, at ito ay binubuo ng mga yugto. Maaari mong tingnan ang mga ito sa IDEA sa pamamagitan ng pag-click sa Maven>halimbawa>Lifecycle sa kanang sulok sa itaas: Bahagi 4. Mga Pangunahing Kaalaman sa Maven - 5Gaya ng nakikita mo, mayroong 9 na yugto:
  1. malinis - inaalis ang lahat ng pinagsama-samang mga file mula sa target na direktoryo (ang lugar kung saan nai-save ang mga natapos na artifact);
  2. validate - pagsuri kung ang lahat ng impormasyon ay magagamit para sa pagbuo ng proyekto;
  3. compile - ang mga file na may source code ay pinagsama-sama;
  4. pagsubok - inilunsad ang mga pagsubok;
  5. package - pinagsama-samang mga file ay nakabalot (sa garapon, digmaan, atbp. archive);
  6. i-verify — isinasagawa ang mga pagsusuri upang kumpirmahin ang kahandaan ng naka-pack na file;
  7. i-install - ang pakete ay inilalagay sa lokal na imbakan. Ngayon ay maaari na itong magamit ng iba pang mga proyekto bilang isang panlabas na aklatan;
  8. site - ang dokumentasyon ng proyekto ay nilikha;
  9. deploy - ang nakolektang archive ay kinopya sa isang remote na imbakan.
Ang lahat ng mga yugto ay isinasagawa nang sunud-sunod: hindi mo maaaring simulan, sabihin, ang ikaapat na yugto hanggang sa makumpleto ang mga yugto 1-3. Mayroong dalawang paraan upang ilunsad ang isang yugto:
  • sa pamamagitan ng command line:

    mvn package

    Bahagi 4. Mga Pangunahing Kaalaman sa Maven - 6
  • gamit ang Intellij IDEA:

    Bahagi 4. Mga Pangunahing Kaalaman sa Maven - 7

    Bago ilunsad ang package, ang mga yugto ng pagpapatunay, pag-compile, at pagsubok ay isinasagawa. Ang pagbubukod ay ang malinis na yugto. Maipapayo na tawagan ito bago ang bawat bagong pagtatayo ng proyekto. Maaaring ilista ang mga phase na pinaghihiwalay ng mga puwang:

    mvn malinis na pakete.

Gayundin, ang bawat yugto ay may mga pre- at post-phase: halimbawa, pre-deploy, post-deploy, pre-clean, post-clean, ngunit ang mga ito ay bihirang ginagamit. Bilang karagdagan, ang bawat yugto ay may mga layunin. Ang mga karaniwang layunin ay kasama bilang default, ang mga karagdagang ay idinagdag ng Maven plugin. Minsan sa ilang yugto kailangan mong magsagawa ng karagdagang pag-andar. Mayroong Maven plugin para dito. Ang listahan ng mga opisyal na plugin ay matatagpuan sa Maven website . Ngunit alamin na marami pa ring custom na plugin na makikita sa mga mapagkukunan ng third-party. Well, siyempre, kung mayroong ilang kakaibang pangangailangan, palagi kang may pagkakataon na magsulat ng ganoong plugin sa iyong sarili .

Mga Plugin

Upang magdagdag ng Maven plugin sa isang proyekto, ang paglalarawan nito, katulad ng mga dependency, ay dapat ilagay sa pom.xml sa <build> at <plugins> na mga tag. Halimbawa, kailangan namin ng isang plugin upang suriin na ang lahat ng aming mga panlabas na aklatan ay gumagamit ng mga pinakabagong bersyon. Pagkatapos ng kaunting paghahanap sa Internet, mahahanap mo ang plugin na ito na may mga tagubilin para sa paggamit. Itakda natin ang groupId, artifactId at bersyon nito. Isulat natin kung anong mga layunin ang dapat niyang matupad at sa anong yugto. Sa aming kaso, ang pagsuri ng dependency sa kasalukuyang pom.xml ay nakatakda sa yugto ng pagpapatunay. Ngayon ang aming "memorya" ay ganito ang hitsura:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>example.com</groupId>
   <artifactId>example</artifactId>
   <version>1.0-SNAPSHOT</version>

   <build>
       <plugins>
           <plugin>
               <groupId>com.soebes.maven.plugins</groupId>
               <artifactId>uptodate-maven-plugin</artifactId>
               <version>0.2.0</version>
               <executions>
                   <execution>
                       <goals>
                           <goal>dependency</goal>
                       </goals>
                       <phase>validate</phase>
                   </execution>
               </executions>
           </plugin>
       </plugins>
   </build>

   <dependencies>
       <dependency>
           <groupId>commons-io</groupId>
           <artifactId>commons-io</artifactId>
           <version>2.6</version>
       </dependency>
   </dependencies>
</project>
Maaari pa rin kaming magpatuloy sa paggawa sa aming proyekto. Ngunit subukan nating baguhin ang bersyon ng Apache Commons IO sa 2.0 at simulan ang pagbuo ng proyekto. Nakukuha namin: [ERROR] Failed to execute goal com.soebes.maven.plugins:uptodate-maven-plugin:0.2.0:dependency (default) on project example: There is a more up-to-date version ( 2.6 ) of the dependency commons-io:commons-io:2.0 available. -> [Help 1] Narito mayroon kaming error sa pagbuo na dulot ng plugin. Ang mensahe ng error ay nagsasaad na gumagamit kami ng bersyon 2.0 kapag available ang 2.6. Sa pangkalahatan, ang Maven ay isang napaka-kapaki-pakinabang na tool. Maaaring mukhang mahirap gamitin sa una, ngunit magsanay, lumikha ng iyong mga proyekto sa ilalim ng Maven, at pagkaraan ng ilang sandali ay magiging napakasaya mo sa resulta. Ang artikulong ito ay sadyang nag-alis ng maraming detalye tungkol kay Maven - tumutok kami sa mga mahahalaga. Ngunit walang limitasyon sa pagiging perpekto: maaari kang magbasa nang higit pa tungkol sa Maven sa opisyal na website ng produkto . Bahagi 5. Mga Servlet. Pagsusulat ng simpleng web application Part 6. Servlet container Part 7. Introducing the MVC (Model-View-Controller) pattern Part 8. Pagsusulat ng maliit na spring-boot application
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION