Linux系统Maven安装配置与项目部署指南

一、Maven安装
  1. 下载Maven
    访问Apache Maven官网下载最新版(如apache-maven-3.9.6-bin.tar.gz):

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

  2. 解压与安装
    解压到/opt目录并创建软链接:

    tar -xzvf apache-maven-*.tar.gz -C /opt
    ln -s /opt/apache-maven-3.9.6 /opt/maven  # 创建软链接便于版本管理
    

  3. 配置环境变量
    编辑/etc/profile文件:

    echo 'export MAVEN_HOME=/opt/maven' >> /etc/profile
    echo 'export PATH=$MAVEN_HOME/bin:$PATH' >> /etc/profile
    source /etc/profile  # 立即生效
    

  4. 验证安装

    mvn -v
    

    成功输出示例:

    Apache Maven 3.9.6 (...)
    Java version: 17.0.10, vendor: Oracle Corporation
    


二、Maven配置优化
  1. 配置本地仓库
    编辑/opt/maven/conf/settings.xml

    <localRepository>/data/maven_repo</localRepository>  <!-- 自定义路径 -->
    

  2. 加速依赖下载
    <mirrors>标签内添加阿里云镜像:

    <mirror>
      <id>aliyunmaven</id>
      <name>阿里云公共仓库</name>
      <url>https://maven.aliyun.com/repository/public</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
    

  3. 设置JDK版本
    <profiles>中添加:

    <profile>
      <id>jdk-17</id>
      <activation><activeByDefault>true</activeByDefault></activation>
      <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
      </properties>
    </profile>
    


三、项目部署流程
  1. 上传项目代码
    使用scp或SFTP工具上传项目至服务器(如/data/project):

    scp -r /local/project user@ecs_ip:/data/project
    

  2. 编译打包项目
    进入项目目录执行:

    cd /data/project
    mvn clean package -DskipTests  # 跳过测试加速构建
    

    生成物路径:target/*.wartarget/*.jar

  3. 部署应用

    • Web项目(WAR包)
      复制到Tomcat的webapps目录:
      cp target/*.war /opt/tomcat/webapps/
      systemctl restart tomcat  # 重启Tomcat
      

    • Spring Boot(JAR包)
      直接运行:
      nohup java -jar target/*.jar > app.log 2>&1 &
      


四、运维管理
  1. 进程守护
    创建Systemd服务(/etc/systemd/system/app.service):

    [Unit]
    Description=Spring Boot App
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/java -jar /data/project/target/app.jar
    User=www
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    启用服务:

    systemctl daemon-reload
    systemctl start app
    

  2. 日志查看

    tail -f /data/project/app.log  # 实时日志
    journalctl -u app.service -f  # Systemd服务日志
    


常见问题排查
问题现象 解决方案
mvn: command not found 检查source /etc/profile是否执行
依赖下载超时 确认镜像配置或网络策略
端口冲突 netstat -tunlp 检查占用端口
内存不足 调整JVM参数:-Xmx2g -Xms1g

提示:生产环境建议使用CI/CD工具(如Jenkins)实现自动化部署。

更多推荐