Maven hakda hemme zat: tejribe etmegi gowy görýän başlangyç . Teoriýa hakda ýazmagyň käwagt ýadawdygyny göz öňüne getirip bilmeýärsiň. Şeýle-de bolsa, siz onsuz hiç ýere gidip bilmersiňiz. Elbetde, tejribe başga mesele. Indi öň beýan eden buýruklarymyza çalt geçeliň we gutararys)
- compöne düzmeli bir zadyň bolmagy üçin, şol ýere goşmaly! Mantyklymy? - Hawa kapitan. bgg Şonuň üçin, usuly we iki synag boljak synpy goşalyň. Maven üçin yzygiderli bukja shemasy döredeliň:
Pom.xml gurmak
Nazaryýetleşdirenimizde, gaty gowy pom.xml aldyk:Kody görmek
<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 esasy java çeşmeleri java çeşmelerini barlaýar
Src / main / java- da işleýän bukjamyzy dörederis. Dogry ýazmak üçin guramanyň adyny ( groupId ), soň bolsa taslamanyň adyny goýsaň gowy bolardy . Biziň ýagdaýymyzda şeýle bolar: com.github.javarushcommunity.mavendemo Men hakda aýtsam, bu gaty gowy paket. Onda “ImageComparator” synpyny dörederis , munuň üçin iki synag ýazarys.
Maveni we umuman taslamany IDEA birikdirmek
Pikiriň garaşlylygymyzy tanap bilmek we taslamada ulanmagy teklip etmek üçin birnäçe zady etmeli:- Kod çeşmeleriniň nirede boljakdygyny we synaglaryň nirede boljakdygyny aýdyň.
- Pikiriň üstünde bir taslama goşuň.
- • src / main / java - Çeşmeler
- • src / esasy / çeşmeler - Çeşmeler
- • src / test / java - Synaglar
- • src / test / çeşmeler - Synag çeşmeleri
- • nyşan - aýryldy
“Taslamamyz” üçin çeşmeler we synaglar ýazýarys
Şeýlelik bilen, Maveni pikire goşduk, indi geliň, biziň üçin çeşme hökmünde çykyş etjek synpy suratlandyralyň:ImageComparator:
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();
}
}
Bu maksat bilen synaglary döredeliň. Synag berýän synp bir paketde bolmaly, diňe src / test / java. Pikir muny bilýär we onuň mümkinçiliklerinden peýdalanyp bilersiňiz. Munuň üçin faýlyň içindäki synpyň adyna basyň we peýda bolan lampa üstünde synag döretmek saýlaň: Geljekki synag üçin sazlamalary saýlamagymyz soralar. Hiç zat gurmaýarys, diňe "OK" -a basyň: Synagymyz üçin synag suratlaryndan surat deňeşdirmesini alarys we synag çeşmelerine ýerleşdireris (src / test / source). Ondan soň iki synag ýazarys. Biri bu iki suratyň başgaçadygyny barlar. Beýleki birinde bolsa, şol bir suraty ibereris we olaryň birmeňzeşdigine jogap garaşarys. Soňra aşakdaky synagy alarys:
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);
}
}
Synaglar gaty ýönekeý, men olaryň üstünde durup bilmerin. Eger gyzyklanýan bolsaňyz, bir gün synag barada makala ýazaryn (teswirlerde bu hakda ýazyň).
Maven buýruklaryny ýerine ýetiriň
Indi, hemme zat toparlaryň işini görmäge taýyn bolanda, “Maven” pluginindäki taslamamyzy saýlaň we “ Lifecycle” -ni açyň : Indi “ Compile” -e basyň we nämäniň bolandygyny görüň: Mundan iki netije çykaryp bileris:- Çeşmelerimiz düzüldi we görkezilen ýolda ýerleşdirildi.
- Buýruk üstünlikli boldy - GURUŞ ÜÇIN.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
Geliň, taslama goşalyň, wersiýasyny mümkin boldugyça <häsiýetler /> goýalyň we synagy täzeden başlalyň : Indi başga mesele! Iki synag geçirildi we üstünlikli boldy. Ot! Indi bukjamyzy işledýäris we maksatly bukjada jarnik taparys diýip garaşýarys : theagny, synaglaryň geçendigini ýene bir gezek görýäris we şondan soň (taslamadaky ähli zadyň gowydygyny kepillendirýäris) taslamany bir ýere jemläp bileris arhiw Surat, açylyş ýazgylarynda we taslama gurluşynda arhiwiň bardygyny görkezýär. Indiki gurnadyk . Ajaýyp topar. Aý, ýatdan çykarmazdan ozal. Arassa işlemek bilen täze buýrugy ýerine ýetirmezden ozal taslamany arassalamak gowy tejribe hasaplanýar . Bu sizi geljekde bolgusyz zatlardan halas eder - muny öz tejribämden kepillendirýärin))) Şonuň üçin ilki bilen arassa işleýäris , soň bolsa gurýarys : Ok nirede bolsa, ýerli ammaryň nirededigini anyk görüp bilersiňiz. Writeazan zatlaryna esaslanyp, meniň ýolum: /Users/roman_beskrovnyi/.m2 Arhiwiň özi şu ýerde ýerleşer: /Users/roman_beskrovnyi/.m2/repository/com/github/javarushcommunity/maven-demo/1.0- SNAPSHOT Eger terminala baryp, arhiwiň ýerleşýän bukjasyna girmäge synanyşsak, ol şol ýerde bolar: ýerleşdirmek bize görkezmez, beýlekilere entek zerurlyk ýok ...
Peýdaly baglanyşyklar: |
---|
GO TO FULL VERSION