Java项目打包部署到服务器的详细教程

server/2024/10/20 5:35:54/

摘要:本文将详细介绍如何将Java项目打包成可执行文件,并将其部署到服务器上。通过本文的学习,你将掌握Java项目打包和部署的整个过程。

一、准备工作

开发环境:本文以IntelliJ IDEA为例,其他IDE同理。
服务器:本文以CentOS为例,其他Linux系统同理。
Java项目:已完成开发并能在本地正常运行。
当然可以。下面我将更详细地介绍如何将Java项目打包并部署到服务器,包括如何配置服务器、如何使用SSH进行文件传输、如何设置服务自启动等。

二、项目打包(详细步骤)

1. Maven配置

首先,确保你的项目是使用Maven构建的。在pom.xml中添加或确认以下插件配置:

<build><plugins><!-- 编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.1</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin><!-- 打包插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><version>3.3.0</version><configuration><archive><manifest><mainClass>com.example.MainClass</mainClass></manifest></archive><descriptorRefs><descriptorRef>jar-with-dependencies</descriptorRef></descriptorRefs></configuration><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins>
</build>

替换<mainClass>中的com.example.MainClass为你的主类全路径。

2. 打包项目

在命令行中,进入到项目的根目录,执行以下命令进行打包:

mvn clean package

打包完成后,你会在target目录下找到一个名为your-artifact-id-version-jar-with-dependencies.jar的文件。

三、服务器准备

1. 安装Java环境

服务器上安装Java运行环境(JRE)或Java开发工具包(JDK):

sudo yum install java-1.8.0-openjdk-devel

确认Java版本:

java -version
2. 创建项目目录

服务器上创建一个目录来存放你的jar包和日志文件:

sudo mkdir /opt/myapp
sudo chown your_username:your_username /opt/myapp

四、部署项目

1. 上传jar包到服务器

使用SCP命令上传jar包到服务器

scp target/your-artifact-id-version-jar-with-dependencies.jar your_username@your_server_ip:/opt/myapp
2. 运行项目

连接到服务器,并运行jar包:

ssh your_username@your_server_ip
cd /opt/myapp
java -jar your-artifact-id-version-jar-with-dependencies.jar
3. 后台运行项目

使用nohup命令和&让项目在后台运行:

nohup java -jar your-artifact-id-version-jar-with-dependencies.jar > output.log 2>&1 &
4. 查看项目状态

查看项目是否正在运行:

ps aux | grep java
5. 设置服务自启动

创建一个系统服务来管理你的Java应用:

sudo nano /etc/systemd/system/myapp.service

添加以下内容:

[Unit]
Description=My Java Application
After=network.target
[Service]
User=your_username
ExecStart=/usr/bin/java -jar /opt/myapp/your-artifact-id-version-jar-with-dependencies.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target

启动并使服务自启动:

sudo systemctl start myapp
sudo systemctl enable myapp

现在,你的Java应用会在服务器启动时自动运行。如果需要重启或停止服务,可以使用以下命令:

sudo systemctl restart myapp
sudo systemctl stop myapp

通过以上步骤,你的Java项目应该已经成功部署到服务器并配置为自启动服务。


http://www.ppmy.cn/server/99960.html

相关文章

mysql数据存储问题

目录 MySQL数据存储基础 MySQL数据存放位置 InnoDB存储引擎介绍 Mermaid图表&#xff1a;InnoDB存储引擎数据文件结构 表空间结构详解 组成要素 组织方式 页内组织 性能影响 Mermaid图表&#xff1a;表空间的层次化结构和页内组织 InnoDB行格式详解 行格式类型 Co…

Nginx异常关闭之中了挖矿病毒kswapd0

问题描述&#xff1a;系统突然无法访问了&#xff0c;登录服务器看了一下是因为Nginx服务关闭&#xff0c;重启后过了几天仍然异常关闭 系统&#xff1a;CentOS 7&#xff0c;Nginx 1.20 尝试解决过程&#xff1a;1、查询nginx/logs/error.log、系统日志&#xff0c;都没有查…

下一代 RAG 技术来了!微软正式开源 GraphRAG

省流总结 优点&#xff1a;检索准确度高 缺点&#xff1a;单个19w字构建用时4分30s、gpt4 token花费12美元 概述 7 月 2 日&#xff0c;微软开源了 GraphRAG&#xff0c;一种基于图的检索增强生成 (RAG) 方法&#xff0c;可以对私有或以前未见过的数据集进行问答。在 GitHub…

利用EditPlus进行Json数据格式化

利用EditPlus进行Json数据格式化 git下载地址&#xff1a;https://github.com/michael-deve/CommonData-EditPlusTools.git (安装过editplus的直接将里面的json.js文件复制走就行) 命令&#xff1a;Cscript.exe /nologo “D:\Program Files (x86)\EditPlus 3\json.js” D:\P…

git合入另一个分支连续的多个提交

例如&#xff0c;如果您想合入另一个分支feature-branch上的三个连续提交&#xff0c;其哈希值分别是commit1、commit2和commit3&#xff0c;您可以这样做&#xff1a; git checkout master # 切换到master分支 git cherry-pick commit1 commit2 commit3 # 将这些提交应用到当…

《RT-DETR》论文笔记

原文出处 [2304.08069] DETRs Beat YOLOs on Real-time Object Detection (arxiv.org)https://arxiv.org/abs/2304.08069 原文笔记 What DETRs Beat YOLOs on Real-time Object Detection 1、设计了一种高效的混合编码器&#xff0c;通过解耦尺度内交互和跨尺度融合来提高…

C#商城源码与.NET技术在电商领域的应用_OctShop

在当今互联网化商业的浪潮中&#xff0c;网上商城成为了企业拓展市场、提升竞争力的重要手段。而 C# 商城源码和.NET 相关的技术在构建高效、稳定、安全的网上商城中发挥着关键作用。OctShop将深入探讨 C# 商城源码、.NET 商城源码、C# 网上商城以及.NET Core 商城源码的特点、…

Pytorch中transform的应用

在PyTorch中&#xff0c;transforms模块主要用于对图像进行预处理和数据增强&#xff0c;以便于训练深度学习模型。这些转换操作可以包括裁剪、缩放、旋转、翻转等&#xff0c;以及对图像进行标准化处理。下面将详细介绍一些常用的transforms操作及其应用。 1. 常用的transfor…