Java 项目如何打包及部署?

当使用Spring Boot结合Maven构建单体应用时,正确的项目打包配置至关重要。

第一步:更新 pom.xml 配置文件

在项目的 pom.xml 文件中,确保您有正确的 配置块。这个配置块不仅指定了资源文件的处理方式,还包含了Spring Boot Maven插件的配置,该插件负责将应用打包为一个可执行的jar文件。

以下是一个典型的 配置示例:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.xml</include>
                <include>**/*.properties</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
                <!-- 若需热加载,取消以下注释 -->
                <!--<fork>true</fork>-->
                <!-- 支持静态文件热部署 -->
                <addResources>true</addResources>
            </configuration>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

注意:确保 目录指向 src/main/resources,而非 src/main/java,因为后者默认已被Maven处理。

第二步:使用Maven构建项目

在配置了 pom.xml 之后,您可以使用Maven的以下命令来清理、编译并打包您的应用:

  1. 清理项目:mvn clean
  2. 安装并打包:mvn install

确保这两个步骤都执行无误,之后您的应用应该能够被打包成一个名为 target/your-app-x.y.z.jar 的可执行jar文件。您可以使用 java -jar 命令来运行它,如下:

java -jar target/your-app-x.y.z.jar

以上步骤能帮助您确保单体Spring Boot应用的Maven构建和打包过程正确无误。

部署方式一(命令行方式):

  1. 定位生成的jar文件

在部署前,通过日志文件确认最新构建的jar包的文件路径。

  1. 停止服务并清理旧版本

如果是更新部署,需要先停止当前运行的服务。以下是停止服务的步骤:

找到正在监听的端口以及对应的进程:

netstat -tulnp | grep 端口号
ps -ef | grep java

根据获取到的进程号终止进程:kill -9 进程号

删除或备份服务器中的旧版本项目文件。如需保留日志文件,请根据实际需求进行处理。

  1. 上传新的jar包

使用WinSCP或其他SSH文件传输工具,将新的jar包文件从开发环境上传到服务器的指定部署目录。

  1. 启动服务

在服务器上运行以下命令以启动项目:nohup java -jar xxx.jar > /dev/null 2>&1 &

nohup 命令用于在退出终端后继续运行命令,& 将命令放入后台执行。

  1. 管理后台任务

使用以下命令将正在前台执行的任务放入后台:

挂起命令:Ctrl + z

然后使用 bg 命令恢复挂起的任务在后台继续运行。

结束前台命令:Ctrl + c

该命令会强制终止当前正在前台运行的命令。

确保使用Ctrl + z后再通过bg命令来确保任务在后台继续运行。避免使用Ctrl + c,因为这将会中断并结束当前正在执行的程序。

部署方式二(Shell 脚本):

使用 vim 编写 Linux shell script,或者在 Windows 环境下编辑好,然后拷贝文件到 Linux 下。均可。

#!/bin/bash

APP_NAME=$2
PROFILE=$3

usage() {
    echo "------"
    echo "Invalid usage!"
    echo "Usage: $0 [start|stop|restart|status] <app-name>.jar [dev|test|prod]"
    echo "------"
    exit 1
}

# 检查应用是否在运行
is_exist() {
    pid=$(pgrep -f "$APP_NAME.*java -jar")
    if [ -z "$pid" ]; then
        return 1
    else
        echo "---"
        echo "[$APP_NAME] - [$PROFILE] is running. PID is [$pid]."
        echo "---"
        return 0
    fi
}

# 启动应用
start() {
    is_exist
    if [ $? -eq 0 ]; then
        echo "[$APP_NAME] - [$PROFILE] is already running. PID=[$pid]."
    else
        nohup java -jar -Xms128M -Xmx512M "$APP_NAME" --spring.profiles.active="$PROFILE" >/dev/null 2>&1 &
        echo "[$APP_NAME] - [$PROFILE] started successfully."
    fi
}

# 停止应用
stop() {
    is_exist
    if [ $? -eq 0 ]; then
        kill -9 "$pid"
        echo "[$APP_NAME] - [$PROFILE] stopped."
    else
        echo "[$APP_NAME] - [$PROFILE] is not running."
    fi
}

# 显示应用状态
status() {
    is_exist
    if [ $? -eq 0 ]; then
        echo "[$APP_NAME] - [$PROFILE] is running. PID is [$pid]."
    else
        echo "[$APP_NAME] - [$PROFILE] is not running."
    fi
}

# 重启应用
restart() {
    stop
    start
}

# 检查参数
if [ -z "$APP_NAME" ]; then
    echo "Missing project name!"
    usage
fi

if [ -z "$PROFILE" ]; then
    echo "Missing profile!"
    usage
fi

case "$1" in
    "start")
        start
        ;;
    "stop")
        stop
        ;;
    "status")
        status
        ;;
    "restart")
        restart
        ;;
    *)
        usage
        ;;
esac

# 如果在Windows下编辑并复制到Linux,需要转换文件格式
# 使用 sed -i 's/\r$//' script.sh 来转换脚本文件格式

确保在Linux系统中将脚本文件保存成UNIX格式,并且赋予执行权限:chmod +x script.sh

然后,您可以通过以下命令执行脚本进行应用的部署操作:

./script.sh start myapp.jar dev
./script.sh stop myapp.jar dev
./script.sh restart myapp.jar dev
./script.sh status myapp.jar dev

请将myapp.jar替换成您的实际应用名,dev替换为您需要部署的环境配置。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将Java项目打包成微服务,可以按照以下步骤进行操作: 1. 配置项目环境:下载并安装Java开发工具包(JDK),确保正确配置Java环境变量。 2. 构建项目:使用构建工具(如Maven或Gradle)创建项目,并添加所需的依赖项。 3. 创建项目配置文件:根据项目需求,创建项目配置文件(如application.properties或application.yml),配置项目所需的各项参数和属性。 4. 编写代码:根据项目需求,编写Java代码实现功能。确保代码符合项目需求,并通过测试。 5. 打包项目:使用构建工具(如Maven或Gradle)执行打包命令,将项目代码编译成可执行的JAR文件。 6. 部署微服务:将打包生成的JAR文件部署到目标服务器上。可以使用脚本或手动方式进行部署。 请根据具体的项目需求和操作平台,选择适合的构建工具和部署方式。在引用中提供的示例中,使用了Maven作为构建工具,并执行了打包命令(mvn package)来生成服务代码。 注意:在打包微服务之前,确保项目的依赖项已经正确配置,并且代码已经通过了测试。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [基于java web技术的毕业设计商城项目](https://download.csdn.net/download/qq_35831906/88227124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [java微服务打包命令](https://blog.csdn.net/lj15559275886/article/details/108349723)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值