Ҳама дар бораи Maven: ибтидо ман машқ карданро дӯст медорам. Шумо ҳатто тасаввур карда наметавонед, ки баъзан дар бораи назария навиштан чӣ қадар дилгиркунанда аст. Бо вуҷуди ин, шумо наметавонед бе вай ба ҳеҷ куҷо равед. Амалия масъалаи дигар аст, албатта. Акнун биёед зуд фармонҳоеро, ки ман қаблан тавсиф карда будам, гузарем ва мо анҷом медиҳем)
- Аммо барои он ки чизе барои ҷамъоварӣ дошта бошад, онро дар он ҷо илова кардан лозим аст! Мантиқӣ? - Ҳа капитан. bgg Аз ин рӯ, биёед синферо илова кунем, ки барои он усул ва ду санҷиш дошта бошад. Биёед нақшаи папкаи муқаррариро барои Maven эҷод кунем:
Насб кардани pom.xml
Ҳангоме ки мо назария мекардем, мо як pom.xml хеле хуб гирифтем:Рамзи дидан
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
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>com.github.javarushcommunity</groupId>
<artifactId>maven-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Maven Demo Project</name>
<url>https://github.com/javarushcommunity/maven-demo/</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<id>romankh3</id>
<name>Roman Beskrovnyi</name>
<email>roman.beskrovnyy@gmail.com</email>
</developer>
</developers>
<scm>
<connection>git@github.com:javarushcommunity/maven-demo.git</connection>
<developerConnection>git@github.com:javarushcommunity/maven-demo.git</developerConnection>
<url>https://github.com/javarushcommunity/maven-demo</url>
</scm>
<properties>
<mockito.version>2.26.0</mockito.version>
<junit.version>5.5.2</junit.version>
<image.comparison.version>4.3.0</image.comparison.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<javadoc.plugin.version>3.1.1</javadoc.plugin.version>
<source.plugin.version>3.2.0</source.plugin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.romankh3</groupId>
<artifactId>image-comparison</artifactId>
<version>${image.comparison.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${source.plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${javadoc.plugin.version}</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
src захираҳои асосии Java санҷиши захираҳои java
Дар src/main/java мо бастаеро эҷод мекунем, ки дар он кор хоҳем кард. Барои дуруст тартиб додани он, хуб мебуд, ки дар аввал номи ташкилот ( groupId ) ва баъд номи лоиҳаро гузоред. Дар ҳолати мо ин чунин хоҳад буд: com.github.javarushcommunity.mavendemo Барои ман, ин бастаи хеле хуб аст. Дар он мо синфи ImageComparator -ро эҷод мекунем , ки барои он мо ду санҷиш менависем.
Пайваст кардани Maven ва лоиҳа дар маҷмӯъ ба IDEA
Барои он ки идея вобастагии моро эътироф кунад ва истифодаи онҳоро дар лоиҳа пешниҳод кунад, мо бояд якчанд корҳоро анҷом диҳем:- Идеяро бигӯед, ки манбаъҳои codeҳо дар куҷо хоҳанд буд ва санҷишҳо дар куҷо хоҳанд буд.
- Ба идея лоиҳаи maven илова кунед.
- • src/main/java - Сарчашмаҳо
- • src/main/resources - Захираҳо
- • src/test/java - Санҷишҳо
- • src/test/resources - Захираҳои санҷишӣ
- • ҳадаф - Хориҷ карда шудааст
Мо барои "лоиҳа"-и худ манбаъҳо ва санҷишҳо менависем
Ҳамин тавр, мо Мавенро ба идея илова кардем, ҳоло биёед синферо тавсиф кунем, ки барои мо ҳамчун манбаъ амал мекунад:Муқоисакунандаи тасвир:
package com.github.javarushcommunity.mavendemo;
import com.github.romankh3.image.comparison.ImageComparison;
import com.github.romankh3.image.comparison.model.ImageComparisonResult;
import com.github.romankh3.image.comparison.model.ImageComparisonState;
import java.awt.image.BufferedImage;
/**
* Class created for answering, does two images the same or not.
*/
public class ImageComparator {
/**
* Method, which says the same images or not.
*
* @param image1 image1 for comparison
* @param image2 image2 for comparison
* @return return true, if images are the same, false - otherwise.
*/
public boolean isTheSameImages(BufferedImage image1, BufferedImage image2) {
//Create ImageComparison object
ImageComparison imageComparison = new ImageComparison(image1, image2);
//Compare images
ImageComparisonResult imageComparisonResult = imageComparison.compareImages();
//Check, that ImageComparisonState is MATCH:
return ImageComparisonState.MATCH == imageComparisonResult.getImageComparisonState();
}
}
Биёед бо ин мақсад тестҳо эҷод кунем. Синф, ки озмоиш мекунад, бояд дар як баста бошад, танҳо дар src/test/java. Идея инро медонад ва шумо метавонед аз имкониятҳои он истифода баред. Барои ин, дар худи файл номи синфро клик кунед ва Сохтани санҷишро дар лампаи рӯшноӣ, ки пайдо мешавад, интихоб кунед: Аз мо хоҳиш карда мешавад, ки танзимоти санҷиши ояндаро интихоб кунем. Мо ҳеҷ чизро насб намекунем, танҳо OK -ро пахш кунед: Барои санҷиши мо, мо аз тасвирҳои санҷишӣ муқоисаи тасвирҳо мегирем ва онҳоро дар захираҳои санҷишӣ мегузорем (src/test/resource). Пас аз ин мо ду санҷиш менависем. Кас месанҷад, ки ин ду расм гуногунанд. Ва дар дигараш мо ҳамон расмро интиқол медиҳем ва посухе интизорем, ки онҳо якхелаанд. Сипас мо санҷиши зеринро мегирем:
package com.github.javarushcommunity.mavendemo;
import com.github.romankh3.image.comparison.ImageComparisonUtil;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.awt.image.BufferedImage;
@DisplayName("Unit-level testing for ImageComparator")
class ImageComparatorTest {
private final ImageComparator comparator = new ImageComparator();
@Test
public void shouldConfirmImagesNotTheSame() {
//given
BufferedImage image1 = ImageComparisonUtil.readImageFromResources("image1.png");
BufferedImage image2 = ImageComparisonUtil.readImageFromResources("image2.png");
//when
boolean theSameImages = comparator.isTheSameImages(image1, image2);
//then
Assertions.assertFalse(theSameImages);
}
@Test
public void shouldConfirmImagesTheSame() {
//given
BufferedImage image1 = ImageComparisonUtil.readImageFromResources("image1.png");
//when
boolean theSameImages = comparator.isTheSameImages(image1, image1);
//then
Assertions.assertTrue(theSameImages);
}
}
Санҷишҳо хеле соддаанд, ман дар бораи онҳо таваққуф намекунам. Агар шумо таваҷҷӯҳ дошта бошед, ман рӯзе дар бораи санҷиш мақола менависам (дар бораи он дар шарҳҳо нависед).
Фармонҳои Mavenро иҷро кунед
Акнун, вақте ки ҳама чиз барои дидани кори дастаҳо омода аст, лоиҳаи моро дар плагини Maven интихоб кунед ва дар он Lifecycle кушоед : Акнун компиляцияро пахш кунед ва бубинед, ки чӣ ҳодиса рӯй дод: Аз ин мо метавонем ду хулоса барем:- Сарчашмаҳои мо тартиб дода, дар роҳи муайян ҷойгир карда шуданд.
- Фармон бомуваффакият анчом ёфт- МУВАФФАКИЯТРО СОХТМОН КУНЕД.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
Биёед онро ба лоиҳа илова кунем, versionро ба қадри имкон дар <properties/> гузорем ва санҷишро аз нав оғоз кунем : Ҳоло ин кори дигар аст! Ду озмоиш гузаронида шуд ва бомуваффақият гузашт. Оташ! Ҳоло мо бастаи худро иҷро мекунем ва интизорем, ки jarnik-ро дар ҷузвдони мақсаднок пайдо хоҳем кард : Яъне, мо бори дигар мебинем, ки санҷишҳо гузаштаанд ва пас аз ин (кафолат медиҳад, ки ҳама чиз дар лоиҳа хуб аст) мо метавонем лоиҳаро дар як архив. Рақам нишон медиҳад, ки дар гузоришҳои оғози maven ва сохтори лоиҳа бойгонӣ мавҷуд аст. Минбаъд мо насб мекунем . Дастаи бузург. Оҳ, пеш аз он ки фаромӯш кунам. Пеш аз иҷрои фармони нав бо иҷроиши тоза тоза кардани лоиҳа таҷрибаи хуб ҳисобида мешавад . Ин шуморо дар оянда аз сафсатаҳо наҷот медиҳад - ман инро аз таҷрибаи худам кафолат медиҳам))) Бинобар ин, аввал мо тоза кор мекунем ва баъд насб мекунем : Дар куҷо тирча ҷойгир аст, шумо метавонед ба таври равшан бубинед, ки анбори маҳаллӣ дар куҷо ҷойгир аст. Бар асоси он чизе ки онҳо менависанд, ин дар роҳи ман аст: /Users/roman_beskrovnyi/.m2 Ва худи бойгонӣ дар ин ҷо ҷойгир хоҳад шуд: /Users/roman_beskrovnyi/.m2/repository/com/github/javarushcommunity/maven-demo/1.0- SNAPSHOT Ва агар мо ба терминал равем ва кӯшиш кунем, ки ба ҷузвдоне, ки архив ҷойгир аст, ворид шавем, он ҷо хоҳад буд: ҷойгиркунӣ ба мо нишон намедиҳад ва ба шумо ҳоло ба дигарон лозим нест...
Истинодҳои муфид: |
---|
GO TO FULL VERSION