Lahat tungkol kay Maven: ang simula gusto kong magsanay. Hindi mo maisip kung gaano nakakapagod minsan ang magsulat tungkol sa teorya. Gayunpaman, hindi ka makakapunta kahit saan kung wala siya. Ang pagsasanay ay isa pang bagay, siyempre. Ngayon ay mabilis nating talakayin ang mga utos na inilarawan ko dati, at tatapusin natin)
- Ngunit upang magkaroon ng isang bagay na i-compile, kailangan itong idagdag doon! Lohikal? - Oo kapitan. bgg Samakatuwid, magdagdag tayo ng isang klase na magkakaroon ng pamamaraan at dalawang pagsubok para dito. Gumawa tayo ng isang regular na scheme ng folder para sa Maven:
Pagse-set up ng pom.xml
Habang nagte-teorya kami, nakakuha kami ng magandang pom.xml:Tingnan ang code
<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 pangunahing mapagkukunan ng java subukan ang mga mapagkukunan ng java
Sa src/main/java gagawa tayo ng package kung saan tayo gagana. Upang mabuo ito nang tama, mainam na ilagay ang pangalan ng organisasyon ( groupId ) sa simula, at pagkatapos ay ang pangalan ng proyekto. Sa aming kaso ito ay magiging ganito: com.github.javarushcommunity.mavendemo Para sa akin, ito ay isang napakagandang pakete. Sa loob nito gagawa kami ng klase ng ImageComparator , kung saan magsusulat kami ng dalawang pagsubok.
Ikinonekta si Maven at ang proyekto sa kabuuan sa IDEA
Upang makilala ng ideya ang aming mga dependency at mag-alok na gamitin ang mga ito sa proyekto, kailangan naming gawin ang ilang bagay:- Sabihin ang ideya kung saan ang mga pinagmumulan ng code at kung saan ang mga pagsubok.
- Magdagdag ng maven project sa ideya.
- • src/main/java - Mga Pinagmulan
- • src/main/resources - Mga mapagkukunan
- • src/test/java - Mga Pagsubok
- • src/test/resources - Mga Mapagkukunan ng Pagsubok
- • target - Hindi kasama
Nagsusulat kami ng mga mapagkukunan at pagsubok para sa aming "proyekto"
Kaya, idinagdag namin si Maven sa ideya, ngayon ay ilarawan natin ang klase na magsisilbing mga mapagkukunan para sa amin: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();
}
}
Gumawa tayo ng mga pagsubok para sa layuning ito. Ang klase na sumusubok ay dapat nasa parehong pakete, sa src/test/java lamang. Alam ito ng ideya, at maaari mong samantalahin ang mga kakayahan nito. Upang gawin ito, mag-click sa pangalan ng klase sa file mismo at piliin ang Lumikha ng pagsubok sa bumbilya na lilitaw: Hihilingin sa amin na pumili ng mga setting para sa pagsubok sa hinaharap. Hindi kami nag-i-install ng anuman, i-click lang ang OK: Para sa aming pagsubok, kukuha kami ng paghahambing ng imahe mula sa mga pagsubok na larawan at ilagay ang mga ito sa mga mapagkukunan ng pagsubok (src/test/resource). Pagkatapos nito ay magsusulat kami ng dalawang pagsubok. Susuriin ng isa na magkaiba ang dalawang larawang ito. At sa iba pa ay ipapadala namin ang parehong larawan at inaasahan ang isang sagot na pareho sila. Pagkatapos makuha namin ang sumusunod na pagsubok:
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);
}
}
Ang mga pagsubok ay napaka-simple, hindi ko sila aalalahanin. Kung interesado ka, magsusulat ako ng isang artikulo tungkol sa pagsubok sa ibang araw (isulat ang tungkol dito sa mga komento).
Isagawa ang mga utos ng Maven
Ngayon, kapag handa na ang lahat upang makita ang gawain ng mga koponan, piliin ang aming proyekto sa Maven plugin at buksan ang Lifecycle dito : Ngayon i-click ang compile at tingnan kung ano ang nangyari: Mula dito maaari tayong gumawa ng dalawang konklusyon:- Ang aming mga mapagkukunan ay pinagsama-sama at inilagay sa tinukoy na landas.
- Ang utos ay matagumpay - BUMUO NG TAGUMPAY.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
Idagdag natin ito sa proyekto, ilagay ang bersyon sa <properties/> sa abot ng ating makakaya at i-restart ang pagsubok : Ngayon ay ibang bagay na! Dalawang pagsubok ang tumakbo at matagumpay. Apoy! Ngayon ay pinapatakbo namin ang aming pakete at inaasahan na mahahanap namin ang jarnik sa target na folder: Iyon ay, nakita namin muli na ang mga pagsubok ay lumipas na, at pagkatapos nito (ginagarantiya na ang lahat sa proyekto ay mabuti) maaari naming kolektahin ang proyekto sa isang archive. Ipinapakita ng figure na mayroong isang archive sa maven launch logs at ang istraktura ng proyekto. Susunod ay mayroon kaming pag-install . Mahusay na koponan. Oh, bago ko makalimutan. Itinuturing na mabuting kasanayan ang paglilinis ng proyekto bago magsagawa ng bagong utos sa pamamagitan ng pagpapatakbo ng malinis . Ito ay magliligtas sa iyo mula sa walang kapararakan sa hinaharap - ginagarantiya ko ito mula sa aking sariling karanasan))) Samakatuwid, una kaming tumakbo malinis , at pagkatapos ay i-install : Kung nasaan ang arrow, maaari mong malinaw na makita kung saan matatagpuan ang lokal na imbakan. Batay sa kung ano ang kanilang isinulat, ito ay sa aking paraan: /Users/roman_beskrovnyi/.m2 At ang archive mismo ay matatagpuan dito: /Users/roman_beskrovnyi/.m2/repository/com/github/javarushcommunity/maven-demo/1.0- SNAPSHOT At kung pupunta tayo sa terminal at susubukang makapasok sa folder kung saan matatagpuan ang archive, naroroon ito: hindi ipapakita sa amin ang deploy, at hindi mo pa kailangan ang iba...
Mga kapaki-pakinabang na link: |
---|
GO TO FULL VERSION