cnsass
@cnsass
The main thing that I did not give up

Самый простой deploy jar на linux сервер?

Имеется сервер на сокетах, сейчас мой ручной intergration выглядит так:
1. Пишу код;
2. Делаю билд;
3. Заливаю на сервер;
4. Останавливаю старый;
5. Запускаю новый;
Что можно использовать, что бы деплоить сразу на сервер?
  • Вопрос задан
  • 522 просмотра
Решения вопроса 1
Попробуй gradle и несколько плагинов shadow jar + https://gradle-ssh-plugin.github.io Для старта и рестарта jar придется написать просто bash скрипт:

Для старта (app.jar)
#!/usr/bin/env bash

realpath() {
    [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
}

APP_HOME=$(dirname "$(realpath "$0")")
APP_PID=$(<"$APP_HOME/app.pid")

if ps -p $APP_PID > /dev/null
then
    echo "Failed to start, service already started!"
    exit 1
fi

nohup java -jar -Dfile.ecoding=UTF-8 "$APP_HOME/app.jar" > "$APP_HOME/app.log" 2>&1 &

APP_PID=$!

echo $APP_PID > "$APP_HOME/app.pid"

echo "App has been started, pid = $APP_PID."


Для остановки:
#!/usr/bin/env bash

realpath() {
    [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
}

APP_HOME=$(dirname "$(realpath "$0")")
APP_PID=$(<"$APP_HOME/app.pid")

if ps -p $APP_PID > /dev/null
then
    echo "Shutdown app with pid = $APP_PID ..."
    kill -15 "$APP_PID"

    while ps -p $APP_PID > /dev/null
    do
        echo "Waiting ..."
        sleep 0.3
    done

    echo "Done!"
else
    echo "App is not running."
fi
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
al_gon
@al_gon
Maven+Ant или просто Ant, в зависимисти, от того как вы собираете.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev
software engineer
напишите скрипт на bash, который скопирует файл на удаленный сервер и перезапустит на нем нужный процесс (tomcat или вашу java)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
25 апр. 2024, в 15:31
70000 руб./за проект
25 апр. 2024, в 15:26
15000 руб./за проект
25 апр. 2024, в 15:13
3000 руб./за проект