CodeGym /Java Blog /Random /Bahagi 4. Ang mga pangunahing kaalaman ng Maven
John Squirrels
Antas
San Francisco

Bahagi 4. Ang mga pangunahing kaalaman ng Maven

Nai-publish sa grupo
Ang materyal na ito ay bahagi ng seryeng "Introduction to Enterprise Development". Mga nakaraang artikulo: Bahagi 4. Ang mga pangunahing kaalaman ng Maven - 1Ang Maven ay isang tool para sa pamamahala at pagbuo ng mga proyekto — isang matulunging assistant ng Java programmer. Ginagawa nitong mas madali ang buhay para sa mga developer sa bawat yugto ng trabaho: mula sa paglikha ng istruktura ng proyekto at pagkonekta sa mga kinakailangang aklatan hanggang sa pag-deploy ng produkto sa server. Kakailanganin mong gamitin ang Maven kapag nagtatrabaho sa anumang framework. Kaya, ngayon tingnan natin ang mga pangunahing pag-andar nito at tingnan kung paano gamitin ang mga ito.

Hakbang-hakbang na pag-install ng Maven

  1. Una, kailangan nating i-install ang Maven. I-download ito mula sa link na ito .

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

  3. Upang matiyak na ang lahat ay naka-install, isagawa ang sumusunod sa command line:

    mvn -bersyon

  4. Kung ang impormasyon ng bersyon para sa Maven, Java, atbp. ay ipinapakita, pagkatapos ay handa na ang lahat.

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

    Bahagi 4. Ang mga pangunahing kaalaman ng Maven - 2
  6. I-click ang "Next" at punan ang window na lalabas:

    Bahagi 4. Ang mga pangunahing kaalaman ng Maven - 3
  7. Pagkatapos, gaya ng dati, lumikha ng isang proyekto kung saan mo gusto.

    Matapos magawa ang proyekto, tandaan ang istraktura nito:

    Bahagi 4. Ang mga pangunahing kaalaman ng Maven - 4
Ito ang karaniwang istraktura ng isang proyekto ng Maven :
  • ang src/main/java folder ay naglalaman ng mga klase ng Java
  • ang src/main/resources folder ay naglalaman ng mga mapagkukunang ginagamit ng application (mga HTML na pahina, larawan, style sheet, atbp.)
  • ang src/test folder ay 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. Walang masyadong impormasyon sa ngayon, ngunit idaragdag namin ito ngayon.

Pamamahala ng mga dependency sa Maven

Maaaring nakita mo ang pariralang "tagapamahala ng dependency". Alam ni Maven kung paano pamahalaan ang mga dependencies. Salamat sa Maven, hindi mo kailangang gumastos ng maraming oras sa paghahanap sa Internet para sa isang kinakailangang library, pag-download nito, at pagkatapos ay ikonekta ito sa iyong proyekto. Sa halip, idagdag mo lang ang kinakailangang library sa listahan ng mga dependency sa Maven.

Ang mga dependencies ay tinukoy sa dependencies node ng pom.xml file

Sabihin nating kailangan mo ang Apache Commons IO library sa iyong proyekto upang pasimplehin ang pagtatrabaho sa mga file. Upang magdagdag ng library, sumusulat kami ng limang linya sa pom.xml:

<dependency>
   <groupId>commons-io</groupId>
   <artifactId>commons-io</artifactId>
   <version>2.6</version>
</dependency>
Ngayon ang iyong pom.xml file ay dapat 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 i-import ang dependency (dapat lumabas ang isang dialog 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 dependency ay dapat ding nakasulat sa loob ng <dependencies>tag. Maaaring nagtataka ka kung paano malalaman ang impormasyon tungkol sa library na kailangan mong ipahiwatig sa loob ng <dependency>tag. Madali lang yan. Tatlong parameter ang palaging kailangang itakda: "groupId", "artifactId" at "version". Mayroong dalawang paraan upang matukoy ang mga parameter na ito:
  1. Sa website ng library. Kung kailangan namin ang Apache Commons IO library, pumunta kami sa opisyal na website at piliin ang tab na "Dependency Information". Narito ang lahat ng kinakailangang impormasyon — maaari mo lamang itong kopyahin at idagdag sa <dependencies>node.

  2. Sa isang repositoryo ng Maven . Ilagay ang "apache commons io" sa search bar at makikita mo ang lahat ng available na bersyon ng library. Pagkatapos piliin ang tama, kopyahin lamang ang sumusunod:

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

    at idagdag ito sa iyong pom.xml.

Mga uri ng mga repositoryo ng Maven

Kapaki-pakinabang para sa amin na banggitin muli ang mga repositoryo ng Maven, dahil mayroon talaga kaming dalawa sa kanila: isang remote (gitnang) imbakan at isang lokal (sa iyong computer) na imbakan. 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, susuriin muna nito kung mayroon nang library sa lokal na repositoryo. Ina-access lamang nito ang malayong imbakan kung hindi nito mahanap ang library nang lokal. Tulad ng nakikita mo, maaari mong gamitin ang Maven upang magdagdag ng mga dependency, ngunit hindi lang ito ang magagawa nito.

Pagbuo ng isang proyekto ng Java gamit ang Maven

Ang kakayahang ito ay maaaring mukhang walang kabuluhan sa isang baguhan. Bakit natin ito kailangan kung mayroon tayong IDE? Hayaan mo akong magpaliwanag. Una, ang server kung saan kailangan mong buuin ang iyong application ay maaaring walang development environment o graphical na interface. Pangalawa, sa malalaking proyekto, mas mahusay ang ginagawa ni Maven sa pagbuo ng proyekto. Kaya nang walang karagdagang adieu, isasaalang-alang namin ang proseso ng pagbuo ng isang aplikasyon gamit ang Maven.

Mga yugto

Ang proseso ng pagbuo ng isang aplikasyon ay kilala sa siklo ng buhay ng proyekto ng Maven, at binubuo ito 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. Ang mga pangunahing kaalaman ng Maven - 5Gaya ng nakikita mo, mayroong 9 na yugto:
  1. clean — inaalis ang lahat ng pinagsama-samang file mula sa target na direktoryo (ang lugar kung saan nai-save ang mga natapos na artifact)
  2. validate — sinusuri kung naroroon ang lahat ng impormasyong kinakailangan para mabuo ang proyekto
  3. compile — nag-compile ng mga source code file
  4. pagsubok - magsisimula ng mga pagsusulit
  5. package — mga package na pinagsama-samang mga file (sa isang JAR, WAR, atbp. archive)
  6. verify — sinusuri kung handa na ang naka-package na file
  7. install — inilalagay ang package sa lokal na repositoryo. Ngayon ay maaari na itong magamit ng iba pang mga proyekto bilang isang panlabas na aklatan
  8. site — lumilikha ng dokumentasyon ng proyekto
  9. deploy — kinokopya ang built archive sa remote repository
Ang lahat ng mga yugto ay isinasagawa nang sunud-sunod: halimbawa, ang ikaapat na yugto ay hindi maaaring simulan hanggang sa ang mga yugto 1-3 ay makumpleto. Mayroong dalawang paraan upang simulan ang isang yugto:
  • sa pamamagitan ng command line:

    mvn package

    Bahagi 4. Ang mga pangunahing kaalaman ng Maven - 6
  • gamit ang IntelliJ IDEA:

    Bahagi 4. Ang mga pangunahing kaalaman ng Maven - 7

    Bago magsimula ang yugto ng package, ang mga yugto ng pagpapatunay, pag-compile, at pagsubok ay isinasagawa. Ang malinis na bahagi ay isang pagbubukod. Magandang ideya na patakbuhin ang yugtong ito bago ang bawat pagbuo ng proyekto. Maaari kang maglista ng maraming mga yugto, na pinaghihiwalay ang mga ito 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, atbp. ngunit ang mga ito ay bihirang ginagamit. Bilang karagdagan, ang bawat yugto ay may mga layunin. Ang mga karaniwang layunin ay itinakda bilang default. Ang mga karagdagang layunin ay idinagdag ng mga plugin ng Maven. Minsan sa isang yugto, maaaring kailanganin mong magsagawa ng mga karagdagang function. Mayroong Maven plugin para dito. Ang isang listahan ng mga opisyal na plugin ay matatagpuan sa Maven website . Ngunit dapat mong malaman na maraming mga custom na plugin na makikita sa mga third-party na website. At siyempre, kung lumitaw ang ilang kakaibang pangangailangan, maaari kang sumulat ng custom na plug-in anumang oras sa iyong sarili .

Mga Plugin

Upang magdagdag ng Maven plugin sa proyekto, kailangan naming idagdag ang paglalarawan nito sa pom.xml file, gamit <build>at <plugins>mga tag, katulad ng kung paano kami nagdagdag ng mga dependency. Halimbawa, ipagpalagay na kailangan namin ng isang plugin upang i-verify na ginagamit namin ang pinakabagong bersyon ng lahat ng aming mga panlabas na library. Pagkatapos ng kaunting paghahanap sa Internet, mahahanap mo ang plugin na ito at mga tagubilin kung paano ito gamitin. Itakda natin ang groupId, artifactId at bersyon. Ipapahiwatig namin kung anong mga layunin ang dapat matupad ng plugin at sa anong yugto. Sa aming kaso, ang pagsuri sa dependency sa kasalukuyang pom.xml ay nakatakdang mangyari sa yugto ng pagpapatunay. Ngayon ang aming pom.xml file 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 tayong magpatuloy sa paggawa sa ating proyekto. Ngunit subukan nating baguhin ang bersyon ng Apache Commons IO sa 2.0 at gawin ang proyekto. makukuha natin

[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 build na nabuo ng plugin. Ang mensahe ng error ay nagsasaad na gumagamit kami ng bersyon 2.0 kapag available ang bersyon 2.6. Karaniwan, ang Maven ay isang napaka-kapaki-pakinabang na tool. Marahil ito ay tila mahirap gamitin sa simula, ngunit magsanay! Lumikha ng iyong mga proyekto gamit ang Maven, at pagkaraan ng ilang sandali ay masisiyahan ka sa resulta. Ang artikulong ito ay sadyang nag-alis ng maraming detalye tungkol kay Maven — nakatuon kami sa pinakamahalaga. Ngunit walang limitasyon sa pagpapabuti: maaari kang magbasa nang higit pa tungkol sa Maven sa opisyal na website nito . Bahagi 5. Mga Servlet at ang Java Servlet API. Pagsusulat ng simpleng web application Part 6. Mga lalagyan ng Servlet Part 7. Ipinapakilala ang pattern ng MVC (Model-View-Controller)
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION