Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠ²Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈApache MavenΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Maven ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Maven

Π’ Π΄Π°Π½Π½ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ рассмотрСн ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° java ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Maven Π² рССстр GitVerse ΠΈ создания Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π³Π΄Π΅ ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ.

πŸ’‘

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ gitverse_tutorials/CICD_building_projects: Π²Π΅Ρ‚ΠΊΠΈ maven-build ΠΈ maven-puller.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ дСйствия

Установка Maven

ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ список ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²:

sudo apt update

УстановитС Maven:

sudo apt install maven

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ установку:

$ mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.23, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "5.15.153.1-microsoft-standard-wsl2", arch: "amd64", family: "unix"

settings.xml

Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½ Π½Π° ваш Π² settings.xml Π² /home/username/.m2/settings.xml:

<?xml version="1.0" encoding="UTF-8"?>
<settings>
    <servers>
      <server>
        <id>gitverse</id>
        <configuration>
          <httpHeaders>
            <property>
              <name>Authorization</name>
              <value>token b9fc851700bc67f92a3394f9afd164331c529c43</value>
            </property>
          </httpHeaders>
        </configuration>
      </server>
    </servers>
</settings>

Π­Ρ‚ΠΈ настройки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Maven ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ рССстру ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² GitVerse для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΡ… Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

  • <id>gitverse</id>: ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСрвСра Maven, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС gitverse;
  • <name>Authorization</name>: Π² Π΄Π°Π½Π½ΠΎΠΌ контСкстС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Authorization, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ это Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСдаСтся информация ΠΎΠ± Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ;
  • <value>token b9fc851700bc67f92a3394f9afd164331c529c43</value>: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° для HTTP-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Authorization, содСрТащСС Ρ‚ΠΎΠΊΠ΅Π½ доступа для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° сСрвСрС GitVerse.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ публикация ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

HelloWorld.java

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ src/main/java/ru/gitverse/tutorials.helloworld/ Ρ„Π°ΠΉΠ» HelloWorld.java:

package ru.gitverse.tutorials.helloworld;
 
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ HelloWorld.java

Java-ΠΏΠ°ΠΊΠ΅Ρ‚ ru.gitverse.tutorials.helloworld слСдуСт Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ src/main/java/ru/gitverse/tutorials/helloworld/, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Java ΠΌΠΎΠ³ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΅Π³ΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ, Ρ‚.ΠΊ. структура Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ структурС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ².

ΠŸΡ€ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ собСрСтся, Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° java -jar target/hello-world-module-0.0.1.jar выполнится с ошибкой:

$ java -jar target/hello-world-module-0.0.1.jar
Error: Could not find or load main class ru.gitverse.tutorials.HelloWorld

pom.xml ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π€Π°ΠΉΠ» pom.xml β€” это Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Maven. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Π² основной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ pom.xml для HelloWorld.java:

<project 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>ru.gitverse.tutorials</groupId>
    <artifactId>hello-world-module</artifactId>
    <version>0.0.1</version>
    <packaging>jar</packaging>
    <repositories>
        <repository>
            <id>gitverse</id>
            <url>https://gitverse.ru/api/packages/author/maven/</url>
        </repository>
    </repositories>
    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
    <distributionManagement>
        <repository>
            <id>gitverse</id>
            <url>https://gitverse.ru/api/packages/author/maven/</url>
        </repository>
        <snapshotRepository>
            <id>gitverse</id>
            <url>https://gitverse.ru/api/packages/author/maven/</url>
        </snapshotRepository>
    </distributionManagement>
    <build>
        <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
            <archive>
                <manifest>
                <mainClass>ru.gitverse.tutorials.helloworld.HelloWorld</mainClass>
                </manifest>
            </archive>
            </configuration>
        </plugin>
        </plugins>
    </build>
</project>

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ pom.xml ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π Π°Π·Π΄Π΅Π» для ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π½Π° GitVerse с вашСй ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записью:

    <distributionManagement>
        <repository>
            <id>gitverse</id>
            <url>https://gitverse.ru/api/packages/author/maven/</url>
        </repository>
        <snapshotRepository>
            <id>gitverse</id>
            <url>https://gitverse.ru/api/packages/author/maven/</url>
        </snapshotRepository>
    </distributionManagement>

Π Π°Π·Π΄Π΅Π» для сборки ΠΈ запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°:

    <build>
        <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
            <archive>
                <manifest>
                <mainClass>ru.gitverse.tutorials.helloworld.HelloWorld</mainClass>
                </manifest>
            </archive>
            </configuration>
        </plugin>
        </plugins>
    </build>

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

$ mvn clean install
[INFO] Scanning for projects...
...
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.034 s
[INFO] Finished at: 2024-07-16T07:54:38+03:00
[INFO] ------------------------------------------------------------------------

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

$ java -jar target/hello-world-module-0.0.1.jar 
Hello, World!

Когда Π²Ρ‹ выполняСтС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ mvn clean install, Maven ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ собранныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ target, собираСт ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, запускаСт тСсты (Ссли ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ), ΡƒΠΏΠ°ΠΊΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ скомпилированный ΠΊΠΎΠ΄ ΠΈ рСсурсы Π² JAR-Ρ„Π°ΠΉΠ» ΠΈ устанавливаСт Π΅Π³ΠΎ Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ Maven. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, JAR-Ρ„Π°ΠΉΠ» hello-world-module-0.0.1.jar создаСтся ΠΈ устанавливаСтся Π² вашСм локальном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ.

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

$ mvn clean deploy
[INFO] Scanning for projects...
...
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.086 s
[INFO] Finished at: 2024-07-16T07:58:00+03:00
[INFO] ------------------------------------------------------------------------

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ отобразится Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ > ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Puller.java

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Puller.java Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ src/main/java/ru/gitverse/tutorials/puller:

package ru.gitverse.tutorials.puller;
 
import ru.gitverse.tutorials.helloworld.HelloWorld;
 
public class Puller {
    public static void main(String[] args) {
        System.out.println("calling HelloWorld.main:");
        HelloWorld.main(args);
    }
}

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ Puller.java

Если ΠΎΠ±Π° Ρ„Π°ΠΉΠ»Π° ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎ Ρƒ Π½ΠΈΡ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈΡ… собствСнным ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ: ru.gitverse.tutorials.puller; ΠΈ ru.gitverse.tutorials.helloworld;. Π’ этом случаС ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ для избСТания ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ обСспСчСния Ρ‡Π΅Ρ‚ΠΊΠΎΠΉ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ классов.

Если ΠΎΠ±Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС Π³Ρ€ΡƒΠΏΠΏΠΎΠ²Ρ‹Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² Π² Maven ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ.

pom.xml

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ pom.xml для Puller.java:

<?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>ru.gitverse.tutorials</groupId>
    <artifactId>puller-module</artifactId>
    <version>0.0.1</version>
 
    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
 
    <repositories>
        <repository>
            <id>gitverse</id>
            <url>https://gitverse.ru/api/packages/author/maven</url>
        </repository>
    </repositories>
 
    <distributionManagement>
        <repository>
            <id>gitverse</id>
            <url>https://gitverse.ru/api/packages/author/maven</url>
        </repository>
 
        <snapshotRepository>
            <id>gitverse</id>
            <url>https://gitverse.ru/api/packages/author/maven</url>
        </snapshotRepository>
    </distributionManagement>
 
    <build>
        <plugins>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>ru.gitverse.tutorials.Puller</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>3.6.0</version>
                <configuration>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
 
    <dependencies>
        <dependency>
            <groupId>ru.gitverse.tutorials</groupId>
            <artifactId>hello-world-module</artifactId>
            <version>0.0.1</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>
 
</project>

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ pom.xml Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ· рССстра GitVerse ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ инструкции Π½Π° страницС самого ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° страницу ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

ΠžΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡΡ страница с инструкциями для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π°:

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ <repositories>, <distributionManagement> ΠΈ <build> Π² pom.xml появился Ρ€Π°Π·Π΄Π΅Π» <dependencies> для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ€Π°Π½Π΅Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ hello-world-module:

    <dependencies>
        <dependency>
            <groupId>ru.gitverse.tutorials</groupId>
            <artifactId>hello-world-module</artifactId>
            <version>0.0.1</version>
            <scope>compile</scope>
        </dependency>
    </dependencies>

Π‘Π±ΠΎΡ€ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π°

Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ mvn clean install:

$ mvn clean install
[INFO] Scanning for projects...
...
BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.741 s
[INFO] Finished at: 2024-07-16T11:34:17+03:00
[INFO] ------------------------------------------------------------------------

mvn clean install автоматичСски Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ зависимости ΠΈΠ· рССстра ΠΏΠ΅Ρ€Π΅Π΄ компиляциСй ΠΈ ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

$ java -jar target/puller-module-1.0-SNAPSHOT.jar 
calling HelloWorld.main:
Hello, World!

ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π”Π°Π»Π΅Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚:

$ mvn clean deploy
...
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.804 s
[INFO] Finished at: 2024-07-16T11:35:38+03:00
[INFO] ------------------------------------------------------------------------

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ отобразится Π² ΠΏΡ€ΠΎΡ„ΠΈΠ»Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ > ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

БвязанныС Ρ€Π°Π·Π΄Π΅Π»Ρ‹

  1. Π—Π΅Ρ€ΠΊΠ°Π»ΠΎ Maven.
  2. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π·Π΅Ρ€ΠΊΠ°Π»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Java.

Π’Ρ‹ нашли Ρ‡Ρ‚ΠΎ искали?