Сборка Java-проекта с помощью Maven

Обновлено и опубликовано Опубликовано:

Используемые термины: Java, Maven.

В данной инструкции мы рассмотрим пример сборки приложения Java с помощью Maven. Более того, будет выполнен весь цикл работ от написания простейшего приложения до проверки его работы после сборки. Работать мы будем на Linux.

Разработка приложения

В нашей системе должен быть установлен JDK. Для Linux есть пакет OpenJDK, который можно установить из встроенного репозитория. Подробнее читайте инструкцию Установка OpenJDK на Linux.

Создадим каталог, в котором будем работать и перейдем в него:

mkdir -p /opt/java/hello

cd /opt/java/hello

Создадим файл с исходником:

vi HelloProgram.java

public class HelloProgram {
    public static void main(String args[]){
        System.out.println("Hello, my friends!");
    }
}

* очень важно, чтобы имя класса HelloProgram совпадало с названием созданного файла.

Проверим:

java HelloProgram.java

Мы должны получить что-то на подобие:

Hello, my friends!

Приложение готово к сборке.

Установка Maven

Для загрузки и распаковки maven нам нужны пакеты wget и tar. В зависимости от типа Linux, установка выполняется разными командами.

а) На Linux DEB (Debian / Ubuntu / Astra Linux):

apt update

apt install wget tar

б) На Linux RPM (Rocky Linux / CentOS / РЕД ОС):

yum install wget tar

После установки пакетов можно скачать приложение.

Переходим на официальный сайт разработчика и копируем ссылку на архив бинарника последней версии:

Копируем ссылку на последнюю версию maven

Используем скопированную ссылку, чтобы загрузить архив на Linux:

cd /usr/local/src

wget https://dlcdn.apache.org/maven/maven-3/3.9.0/binaries/apache-maven-3.9.0-bin.tar.gz

Создадим каталог, в который будет установлен maven:

mkdir /opt/maven

Распакуем в него архив:

tar -zxf apache-maven-*-bin.tar.gz -C /opt/maven --strip-components 1

Проверить, что maven установлен можно командой:

/opt/maven/bin/mvn --version

Чтобы не вводить полный путь до бинарного файла, добавим в системную переменную PATH путь до каталога bin. Для этого откроем файл:

vi ~/.bashrc

* мы откроем настройку для текущего пользователя. Если нам нужно сделать такую же настройку для другого пользователя, необходимо в его домашней директории найти файл .bashrc, и внести изменения в него.

Добавим:

export PATH=$PATH:/opt/maven/bin

Применим настройку:

source ~/.bashrc

Теперь попробуем ввести команду, но уже без полного пути до исполняемого файла:

mvn --version

Наша система готова к сборке.

Сборка приложения

Перед сборкой нам нужно изменить структуру каталогов в корневой папке проекта, создать конфигурационный файл pom.xml и немного подредактировать проект.

Начнем с последнего. Работать будем в корневой папке проекта. В нашем случае это:

cd /opt/java/hello

Открываем нашу программу:

vi HelloProgram.java

Добавляем в самый верх строку:

package hello;
...

Теперь нам нужно создать каталог src/main/java/<имя пакета> и перенести туда наш исходник:

mkdir -p src/main/java/hello

mv HelloProgram.java src/main/java/hello/

Создаем конфигурационный файл pom.xml:

vi pom.xml

<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>hello</groupId>
    <artifactId>hello-app</artifactId>
    <version>1.0</version>
</project>

Можно попробовать собрать приложение:

mvn compile

В итоге, мы должны увидеть что-то на подобие:

[INFO] Compiling 1 source file to /opt/java/hello/target/classes
[INFO] --------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] --------------------------------------------------------------
[INFO] Total time:  3.893 s
[INFO] Finished at: 2023-03-15T11:56:06+03:00
[INFO] --------------------------------------------------------------

Также у нас появится каталог target с собранным приложением.

Сделать тестовый запуск собранной программы можно командой:

Для проверки выполним команду:

mvn exec:java -Dexec.mainClass="hello.HelloProgram"

Читайте также

Другие инструкции, которые могут вас заинтересовать:

1. Установка Jenkins на Ubuntu.

2. Установка Jenkins на CentOS.

3. Пример сборки RPM и Deb пакетов в Gradle.

# DevOps # Linux
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет