Maven のすべて: 最初は 私が練習するのが大好きです。理論について書くことがどれほど退屈なことか、想像することさえできないでしょう。しかし、彼女なしではどこにも行けません。もちろん、練習は別問題です。それでは、前に説明したコマンドを簡単に実行して、終了します)
- しかし、何かをコンパイルするには、そこに追加する必要があります。論理的ですか?- はい、キャプテンです。bgg したがって、メソッドとそれに対する 2 つのテストを持つクラスを追加しましょう。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クラスを作成し、それに対して 2 つのテストを作成します。
Maven とプロジェクト全体を IDEA に接続する
アイデアが依存関係を認識し、プロジェクトでの使用を提案できるようにするには、いくつかのことを行う必要があります。- コードソースがどこにあり、テストがどこにあるのかを伝えます。
- Maven プロジェクトをアイデアに追加します。
- • src/main/java - ソース
- • src/main/resources - リソース
- • src/test/java - テスト
- • src/test/resources - テストリソース
- •ターゲット- 除外
私たちは「プロジェクト」のソースとテストを作成します。
そこで、アイデアに Maven を追加しました。次に、ソースとして機能するクラスについて説明します。画像コンパレータ:
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) に配置します。この後、2 つのテストを作成します。これら 2 つの写真が異なることを確認します。そしてもう一方では、同じ写真を送信し、それらが同じであるという答えを期待します。次に、次のテストが得られます。
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 プラグインでプロジェクトを選択し、その中でライフサイクルを開きます。次に、[コンパイル]をクリックして何が起こったかを確認します。ここから、2 つの結論を引き出すことができます。- ソースはコンパイルされ、指定されたパスに配置されました。
- コマンドは成功しました - BUILD SUCCESS。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
これをプロジェクトに追加し、できる限り<properties/>にバージョンを入力して、テストを再開しましょう。さて、話は別です。2 つのテストが実行され、成功しました。火!ここで、パッケージを実行し、ターゲットフォルダーで jarnik が見つかることを期待します。つまり、テストに合格したことが再度わかります。この後 (プロジェクト内のすべてが良好であることが保証され)、プロジェクトをアーカイブ。この図は、Maven 起動ログとプロジェクト構造にアーカイブがあることを示しています。次に、 installを行います。素晴らしいチーム。ああ、忘れる前に。新しいコマンドを実行する前に、 cleanを実行してプロジェクトをクリーンアップすることをお勧めします。これにより、将来ナンセンスからあなたを救うことができます - 私は自分の経験からそれを保証します))) したがって、最初にcleanを実行し、次にinstall を実行します。矢印がある場所で、ローカルリポジトリがどこにあるかが明確にわかります。彼らの書き込みに基づいて、これは私の途中です: /Users/roman_beskrovnyi/.m2 そしてアーカイブ自体はここにあります: /Users/roman_beskrovnyi/.m2/repository/com/github/javarushcommunity/maven-demo/1.0-スナップショット そして、ターミナルに移動して、アーカイブが存在するフォルダーに入ろうとすると、アーカイブはそこにあります。deploy では表示されず、他のものはまだ必要ありません...
GO TO FULL VERSION