Қадам ба қадам насби Maven
-
Аввалан ба шумо лозим аст, ки Maven-ро тавассути зеркашии он аз ин пайванд насб кунед .
-
Баъдан, шумо бояд бойгонии зеркашидашударо кушоед ва тағирёбандаи муҳити M2_HOME-ро ба истиноди ҷойгиршавии бойгонии кушодашуда насб кунед. Масалан, C:\Program Files\maven\
-
Барои санҷидани он, ки ҳама чиз насб шудааст, дар сатри фармон нависед:
mvn-version
-
Агар маълумоти versionи Maven, Java ва ғайра нишон дода шавад, шумо барои рафтан омодаед.
-
Акнун IntelliJIDEA-ро кушоед ва лоиҳаи нав созед. Дар равзанаи аввал Maven -ро интихоб кунед:
-
Баъдан-ро клик кунед ва қуттии муколамаи зеринро пур кунед:
-
Баъдан, лоиҳаро дар макони зарурӣ ҳамчун стандарт эҷод кунед.
Пас аз таҳияи лоиҳа, ба сохтори он диққат диҳед:
- папкаи src/main/java дорои синфҳои java мебошад;
- дар src/main/resources - захираҳое, ки замимаи мо истифода мебарад (саҳифаҳои HTML, тасвирҳо, варақаҳои услуб ва ғайра);
- src/test - барои санҷишҳо.
Идоракунии вобастагӣ дар Maven
Шояд шумо бо ибораи "менеҷери вобастагӣ" ё "менеҷери вобастагӣ" дучор шудаед. Maven метавонад ҳама чизро иҷро кунад. Бо шарофати Maven, ба шумо лозим нест, ки вақти зиёдеро барои ҷустуҷӯи китобхонаи зарурӣ дар Интернет сарф кунед, онро зеркашӣ кунед ва сипас онро ба лоиҳа пайваст кунед: танҳо китобхонаи лозимиро ба рӯйхати вобастагии Maven илова кунед. Вобастагӣ дар гиреҳи XML вобастагӣ навишта шудааст.Фарз мекунем, ки ба шумо китобхонаи Apache Commons IO дар лоиҳаи худ барои кори соддакардашуда бо файлҳо лозим аст. Барои илова кардани китобхона, дар pom.xml панҷ сатр нависед:<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
pom.xml-и шумо ҳоло бояд чунин бошад:
<?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>
Пас аз ин, ба IntelliJ IDEA иҷозат диҳед, ки вобастагиро ворид кунад (қуттии муколама бояд дар кунҷи рости поён пайдо шавад). Акнун китобхона барои истифода омода аст:
import org.apache.commons.io.FileUtils;
import java.io.File;
public class TestMaven {
public static void main(String[] args) {
File tempDirectory = FileUtils.getTempDirectory();
}
}
Ҳама вобастагии минбаъда низ бояд дар дохor теги <dependencies> навишта шаванд. Шояд шумо дар ҳайрат бошед: шумо аз куҷо медонед, ки кадом маълумотро дар бораи китобхона дар дохor теги <dependency> дохил кардан лозим аст? Дар ин ҷо ҳама чиз оддӣ аст. Дар чунин ҳолатҳо, ҳамеша се параметр муайян карда мешаванд: groupId, artifactId ва version. Шумо метавонед ин параметрҳоро бо ду роҳ пайдо кунед:
-
Дар вебсайти китобхона. Агар ба мо Apache Commons IO лозим бошад, ба вебсайти расмӣ равед ва ҷадвали Маълумоти вобастагӣ -ро интихоб кунед. Ҳама маълумоти зарурӣ дар ин ҷост - шумо метавонед онро танҳо нусхабардорӣ кунед ва ба бахши вобастагии мо илова кунед.
-
Дар анбори Maven . Дар ҷустуҷӯ "apache commons io" -ро ворид кунед ва шумо ҳамаи versionҳои дастраси китобхонаро хоҳед дид. Пас аз интихоби он чизе, ки ба шумо лозим аст, танҳо нусхабардорӣ кунед:
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>
ва ба pom.xml-и худ илова кунед.
Намудҳои анборҳои Maven
Бори дигар дар бораи анбори Maven ёдовар шудан лозим аст, зеро мо воқеан дутои онҳо дорем - берунӣ (глобалӣ) ва маҳаллӣ дар компютери шумо. Ҳамаи китобхонаҳое, ки шумо ба лоиҳаҳои худ илова мекунед, дар анбори маҳаллӣ захира карда мешаванд. Вақте ки Maven вобастагии заруриро ба лоиҳа илова мекунад, вай аввал анбори маҳаллиро барои мавҷудияти чунин китобхона тафтиш мекунад ва танҳо агар он дар он ҷо онро наёбад, ба берунӣ рӯй медиҳад. Тавре ки шумо мебинед, шумо метавонед Maven-ро барои илова кардани вобастагӣ истифода баред, аммо ин ҳама коре нест.Сохтани лоиҳаи Java бо истифода аз Maven
Ин хусусият метавонад барои як навкор бефоида бошад. Чаро ин лозим аст, агар IDE мавҷуд бошад? Аммо не! Аввалан, serverе, ки дар он шумо бояд барнома созед, метавонад на танҳо муҳити таҳия, балки интерфейси графикӣ дошта бошад. Дуюм, дар лоиҳаҳои калон, Maven бо вазифаҳои васл кардани лоиҳа беҳтар кор мекунад. Аз ин рӯ, биёед худро бо интизорӣ азоб надиҳем, балки раванди сохтани барномаро бо истифода аз Maven баррасӣ кунем.Марҳилаҳо
Раванди сохтани барнома давраи зиндагии лоиҳаи Maven номида мешавад ва он аз марҳилаҳо иборат аст. Шумо метавонед онҳоро дар IDEA тавассути клик кардани Maven> Намуна> Давраи ҳаёт дар кунҷи рости боло бубинед: Тавре ки шумо мебинед, 9 марҳила вуҷуд дорад:- тоза - ҳамаи файлҳои тартибдодашударо аз директорияи мақсаднок нест мекунад (ҷое, ки артефактҳои анҷомёфта захира карда мешаванд);
- тасдиқ - тафтиш кардани он, ки оё ҳама маълумот барои сохтани лоиҳа мавҷуд аст;
- compile - файлҳои дорои codeи ибтидоӣ тартиб дода мешаванд;
- тест — озмоишҳо оғоз карда мешаванд;
- баста – файлҳои тартибдодашуда бастабандӣ карда мешаванд (ба кӯза, ҷанг ва ғ. бойгонӣ);
- тафтиш — санҷишҳо барои тасдиқи омодагии файли бастабандӣ гузаронида мешаванд;
- насб - баста дар анбори маҳаллӣ ҷойгир карда шудааст. Акнун он метавонад аз ҷониби дигар лоиҳаҳо ҳамчун китобхонаи беруна истифода шавад;
- сайт - ҳуҷҷатҳои лоиҳавӣ таҳия карда мешаванд;
- ҷойгиркунӣ - бойгонии ҷамъшуда ба анбори дурдаст нусхабардорӣ карда мешавад.
-
тавассути сатри фармон:
бастаи mvn
-
бо истифода аз Intellij IDEA:
Пеш аз оғози баста, марҳилаҳои тасдиқ, тартиб додан ва санҷиш иҷро карда мешаванд. Истисно марҳилаи тоза аст. Тавсия дода мешавад, ки онро пеш аз сохтани лоиҳаи нав даъват кунед. Марҳилаҳоро бо фосила ҷудо кардан мумкин аст:
mvn бастаи тоза.
Плагинҳо
Барои илова кардани плагини Maven ба лоиҳа, тавсифи он, ки ба вобастагӣ монанд аст, бояд дар pom.xml дар тегҳои <build> ва <plugins> ҷойгир карда шавад. Масалан, ба мо як плагин лозим аст, то тафтиш кунем, ки ҳамаи китобхонаҳои берунаи мо versionҳои охиринро истифода мебаранд. Пас аз ҷустуҷӯи каме дар Интернет, шумо метавонед ин плагинро бо дастурҳои истифода пайдо кунед. Биёед groupId, artifactId ва versionи онро танзим кунем. Биёед бинависем, ки ӯ бояд чӣ гуна ҳадафҳоро иҷро кунад ва дар кадом марҳила. Дар ҳолати мо, санҷиши вобастагӣ дар pom.xml ҷорӣ ба марҳилаи тасдиқкунӣ гузошта шудааст. Акнун «хотираи» мо чунин менамояд:<?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>
Мо ҳоло ҳам метавонем корро дар болои лоиҳаи худ идома диҳем. Аммо биёед кӯшиш кунем, ки versionи Apache Commons IO-ро ба 2.0 иваз кунем ва ба сохтани лоиҳа шурӯъ кунем. Мо ба даст меорем: [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]
Дар ин ҷо мо хатогие дорем, ки аз плагин ба вуҷуд омадааст. Паёми хатогӣ мегӯяд, ки мо versionи 2.0-ро ҳангоми дастрас будани 2.6 истифода мебарем. Умуман, Maven як воситаи хеле муфид аст. Дар аввал истифода бурдани он душвор ба назар мерасад, аммо таҷриба кунед, лоиҳаҳои худро дар зери Maven эҷод кунед ва пас аз чанде шумо аз натиҷа хеле хурсанд хоҳед шуд. Ин мақола дидаву дониста тафсилоти зиёдеро дар бораи Maven аз даст дод - мо ба чизҳои муҳим тамаркуз кардем. Аммо барои комorят маҳдудият вуҷуд надорад: шумо метавонед дар бораи Maven бештар дар вебсайти расмии маҳсулот хонед . Қисми 5. Сервлетҳо. Навиштани замимаи оддии веб Қисми 6. Контейнерҳои сервлет Қисми 7. Муаррифии намунаи MVC (Model-View-Controller) Қисми 8. Навиштани барномаи хурди пурборкунандаи баҳор
GO TO FULL VERSION