当前位置: 首页 > news >正文

docker compose一键部署lnmt环境

创建docker compose 目录

[root@localhost ~]#  mkdir -p /compose_lnmt

编写nginx的dockerfile文件

创建目录

[root@localhost compose_lnmt]# mkdir -p nginx

编写nginx配置文件

[root@localhost nginx]# vim nginx.conf

user  root;         #运行身份#nginx自动设置进程数量
worker_processes  auto;#指定错误日志文件的位置和日志级别。在此示例中,错误日志被记录到logs/error.log文件中,并且只记录信息级别的日志。
error_log  logs/error.log  info;pid        logs/nginx.pid; events {use epoll; 
}#定义了HTTP模块相关配置。
http {#引入mime.types文件,用于定义MIME类型映射。include       mime.types;#设置默认MIME类型为application/octet-stream。default_type  application/octet-stream;#定义日志格式。log_format  main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';# 配置访问日志文件路径和格式。access_log logs/access.log main;sendfile        on;                    #开启sendfile功能以提高文件传输效率。keepalive_timeout  65;                 #设置keepalive连接超时时间为65秒。upstream tomcat_8080 {                  # 定义了名为tomcat_8080的upstream组,并指定两个后端服务器地址和端口号。server tomcat1:8080; server tomcat2:8080;}
#定义了一个虚拟主机配置,监听80端口,并设置代理转发规则。server {listen 80;server_name localhost;location ~  / {proxy_pass http://tomcat_8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# When setting up Harbor behind other proxy, such as an Nginx instance, remove the below line if the proxy already has similar settings.proxy_set_header X-Forwarded-Proto $scheme;proxy_buffering off;proxy_request_buffering off;}}
}

 

[root@localhost nginx]# vim Dockerfile

#基于的基础镜像
FROM centos:7
#
##镜像作者信息
MAINTAINER Crushlinux <crushlinux@163.com>
#
##安装相关依赖包
RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel
#
##下载并解压nginx源码包
RUN wget http://nginx.org/download/nginx-1.19.0.tar.gz && tar zxf nginx-1.19.0.tar.gz
##编译安装nginx
RUN cd nginx-1.19.0 && ./configure --prefix=/usr/local/nginx && make && make install 
ENV PATH /usr/local/nginx/sbin:$PATH
#
##开启 80 和 443 端口
EXPOSE 80
#
##修改 Nginx 配置文件,以非 daemon 方式启动
#RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
#
##定义时区
#RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#
#复制服务启动脚本并设置权限
#ADD run.sh /run.sh
#RUN chmod 775 /run.sh
ENTRYPOINT ["nginx"]
CMD ["-g","daemon off;"]

创建数据存放目录

[root@localhost compose_lnmt]# mkdir -p /var/www/html/

编写tomcat的dockerfile

[root@localhost compose_lnmt]# mkdir -p tomcat

[root@localhost compose_lnmt]# cd tomcat/

下载安装包

[root@localhost tomcat]#  wget http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

--2023-08-04 16:37:12--  http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

正在解析主机 www.oracle.com (www.oracle.com)... 23.202.224.60, 2600:1417:76:798::a15, 2600:1417:76:7a0::a15

正在连接 www.oracle.com (www.oracle.com)|23.202.224.60|:80... 已连接。

已发出 HTTP 请求,正在等待回应... 301 Moved Permanently

位置:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html [跟随至新的 URL]

--2023-08-04 16:37:13--  https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

正在连接 www.oracle.com (www.oracle.com)|23.202.224.60|:443... 已连接。

已发出 HTTP 请求,正在等待回应... 301 Moved Permanently

位置:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html [跟随至新的 URL]

--2023-08-04 16:37:15--  https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

正在连接 www.oracle.com (www.oracle.com)|23.202.224.60|:443... 已连接。

已发出 HTTP 请求,正在等待回应... 301 Moved Permanently

位置:./downloads/#java8 [跟随至新的 URL]

--2023-08-04 16:37:16--  https://www.oracle.com/java/technologies/javase/downloads/

再次使用存在的到 www.oracle.com:443 的连接。

已发出 HTTP 请求,正在等待回应... 301 Moved Permanently

位置:https://www.oracle.com/java/technologies/javase-downloads.html [跟随至新的 URL]

--2023-08-04 16:37:16--  https://www.oracle.com/java/technologies/javase-downloads.html

再次使用存在的到 www.oracle.com:443 的连接。

已发出 HTTP 请求,正在等待回应... 301 Moved Permanently

位置:./downloads/ [跟随至新的 URL]

--2023-08-04 16:37:17--  https://www.oracle.com/java/technologies/downloads/

再次使用存在的到 www.oracle.com:443 的连接。

已发出 HTTP 请求,正在等待回应... 200 OK

长度:未指定 [text/html]

正在保存至: “jdk8-downloads-2133151.html”

    [   <=>                                                        ] 112,559      137KB/s 用时 0.8s   

2023-08-04 16:37:18 (137 KB/s) - “jdk8-downloads-2133151.html” 已保存 [112559]

[root@localhost tomcat]#    wget http://tomcat.apache.org/

--2023-08-04 16:37:33--  http://tomcat.apache.org/

正在解析主机 tomcat.apache.org (tomcat.apache.org)... 151.101.2.132, 2a04:4e42::644

正在连接 tomcat.apache.org (tomcat.apache.org)|151.101.2.132|:80... 已连接。

已发出 HTTP 请求,正在等待回应... 301 Moved Permanently

位置:https://tomcat.apache.org/ [跟随至新的 URL]

--2023-08-04 16:37:37--  https://tomcat.apache.org/

正在连接 tomcat.apache.org (tomcat.apache.org)|151.101.2.132|:443... 已连接。

已发出 HTTP 请求,正在等待回应... 200 OK

长度:17702 (17K) [text/html]

正在保存至: “index.html”

100%[=============================================================>] 17,702       113KB/s 用时 0.2s   

2023-08-04 16:37:38 (113 KB/s) - 已保存 “index.html” [17702/17702])

下载tomcat的dockers文件

https://mirrors.bfsu.edu.cn/apache/tomcat/tomcat-8/v8.5.59/bin/apache-tomcat-8.5.59.tar.gz

如果这一步做了下面就不用了

这里上一步做了     就可以跳过

在tomcat目录下放一个apache包

[root@localhost tomcat]# ll
总用量 9600
-rw-r--r--. 1 root root 9690027 7月  17 2020 apache-tomcat-8.5.40.tar.gz

[root@localhost tomcat]# vim Dockerfile

[root@localhost tomcat]# cat Dockerfile 
# this docker file
# VERSION 1.0
# author: shichao# email: shichao@scajy.cn
FROM centos:7
MAINTAINER  shichao@scajy.cn
ENV VERSION=8.5.40                  看这里根据版本号写
RUN yum install -y gcc gcc-c++ make gd-devel libxml2-devel libcurl-devel libjpeg-devel libpng-devel openssl-devel net-tools wget curl unzip iproute java-1.8.0-openjdk && yum clean all  && rm -rf /var/cache/yum/* 
ADD apache-tomcat-${VERSION}.tar.gz /usr/local/
RUN mv /usr/local/apache-tomcat-${VERSION}   /usr/local/tomcat &&\sed -i '1a JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"' /usr/local/tomcat/bin/catalina.sh && \ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
ENV PATH /usr/local/tomcat/bin:$PATH
WORKDIR /usr/local/tomcatEXPOSE 8080CMD ["catalina.sh", "run"]

拷贝tomcat数据到容器目录下

 mkdir -p /var/www/tomcat

 cp -a /usr/local/tomcat/webapps/* /var/www/tomcat/

如果没有

 apache-tomcat-8.5.40.tar.gz       把一个apache包解压把文件放到/var/www/tomcat/

[root@localhost tomcat]# ll /var/www/tomcat/
总用量 8
drwxr-x---. 14 root root 4096 8月   4 16:52 docs
drwxr-x---.  6 root root   83 8月   4 16:52 examples
drwxr-x---.  5 root root   87 8月   4 16:52 host-manager
drwxr-x---.  5 root root  103 8月   4 16:52 manager
drwxr-x---.  3 root root 4096 8月   4 16:52 ROOT

切换目录

编写docker compose配置文件

[root@localhost tomcat]# cd ..
[root@localhost compose_lnmt]# cat docker-compose.yml 
version: '3'
services:nginx:hostname: nginxbuild:context: ./nginxdockerfile: Dockerfileports:- 80:80networks:- lnmtvolumes:- /var/www/html:/usr/local/nginx/html- ./nginx/nginx.conf:/usr/local/nginx/conf/nginx.conftomcat1:hostname: tomcat1build:context: ./tomcatdockerfile: Dockerfilenetworks:- lnmtports:  - "8080:8080"command: ["catalina.sh", "run"]volumes:- /var/www/tomcat:/usr/local/tomcat/webappstomcat2:hostname: tomcat2build:context: ./tomcatdockerfile: Dockerfilenetworks:- lnmtports:- "8081:8080"command: ["catalina.sh", "run"]volumes:- /var/www/tomcat:/usr/local/tomcat/webappsmysql:hostname: mysqlimage: mysql:5.6ports:- 3307:3306networks:- lnmtvolumes:- ./mysql/conf:/etc/mysql/conf.d- ./mysql/data:/var/lib/mysqlcommand: --character-set-server=utf8environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: tomcatMYSQL_USER: tomcatMYSQL_PASSWORD: tomcat123
networks:lnmt: 

构建启动lnmt环境

[root@localhost compose_lnmt]# /root/docker-compose -f docker-compose.yml up -d
Building nginx
Step 1/9 : FROM centos:7
 ---> f31fca55b7fb
Step 2/9 : MAINTAINER Crushlinux <crushlinux@163.com>
 ---> Using cache
 ---> 83b5a758b0fc
Step 3/9 : RUN yum install -y wget proc-devel net-tools gcc zlib zlib-devel make openssl-devel
 ---> Using cache
 ---> d3e03fc7ad3c
Step 4/9 : RUN wget http://nginx.org/download/nginx-1.19.0.tar.gz && tar zxf nginx-1.19.0.tar.gz
 ---> Using cache
 ---> 89974cef8e72
Step 5/9 : RUN cd nginx-1.19.0 && ./configure --prefix=/usr/local/nginx && make && make install
 ---> Using cache
 ---> a8714c890132
Step 6/9 : ENV PATH /usr/local/nginx/sbin:$PATH
 ---> Running in bbb45b0a836f
Removing intermediate container bbb45b0a836f
 ---> 9bada7c394eb
Step 7/9 : EXPOSE 80
 ---> Running in 3b0e33a9736b
Removing intermediate container 3b0e33a9736b
 ---> 463315793fa6
Step 8/9 : ENTRYPOINT ["nginx"]
 ---> Running in 3ed88b7b34de
Removing intermediate container 3ed88b7b34de
 ---> 8da0735f0bf6
Step 9/9 : CMD ["-g","daemon off;"]
 ---> Running in c1f164f4064c
Removing intermediate container c1f164f4064c
 ---> f97e665ec70f
Successfully built f97e665ec70f
Successfully tagged compose_lnmt_nginx:latest
WARNING: Image for service nginx was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating compose_lnmt_tomcat2_1 ... done
Creating compose_lnmt_tomcat1_1 ... done
Creating compose_lnmt_mysql_1   ... done
Creating compose_lnmt_nginx_1   ... done

查看容器是否正常
[root@localhost compose_lnmt]# /root/docker-compose ps
         Name                       Command               State                   Ports                
-------------------------------------------------------------------------------------------------------
compose_lnmt_mysql_1     docker-entrypoint.sh --cha ...   Up      0.0.0.0:3307->3306/tcp,:::3307->3306/
                                                                  tcp                                  
compose_lnmt_nginx_1     nginx -g daemon off;             Up      0.0.0.0:80->80/tcp,:::80->80/tcp     
compose_lnmt_tomcat1_1   catalina.sh run                  Up      0.0.0.0:8080->8080/tcp,:::8080->8080/
                                                                  tcp                                  
compose_lnmt_tomcat2_1   catalina.sh run                  Up      0.0.0.0:8081->8080/tcp,:::8081->8080/
                                                                  tcp                  

浏览器访问    

nginx

           tomcat1

 

 tomcat2

 

 mysql

 

 

相关文章:

docker compose一键部署lnmt环境

创建docker compose 目录 [rootlocalhost ~]# mkdir -p /compose_lnmt 编写nginx的dockerfile文件 创建目录 [rootlocalhost compose_lnmt]# mkdir -p nginx 编写nginx配置文件 [rootlocalhost nginx]# vim nginx.conf user root; #运行身份#nginx自动设置进程…...

Eeny Meeny Moo

Eeny Meeny Moo 题目描述输入输出格式输入格式输出格式 输入输出样例输入样例输出样例 正确解法A C 代码 题目描述 你肯定有过这样的经验&#xff0c;那就是当很多一起使用网络的时候&#xff0c;网速变得很慢很慢。为了解决这个问题&#xff0c;德国的Ulm大学开发了一份意外事…...

flask---闪现/请求扩展/g对象

闪现 # 一个请求---》假设出错了---》重定向到另一个地址---》把错误信息在另一个返回中看到 错误信息放个位置----》另一个请求过来&#xff0c;去那个位置拿 # 把一些数据&#xff0c;放在某个位置---》后期可以去取出来----》取完不用删除&#xff0c;就没了 def index():s…...

Qt视频播放器

一、设置好ui界面二、打开文件槽函数1.QDir::homePath()作用介绍2.QFileDialog::getOpenFileName()介绍3.QFileInfo介绍4.player 指针解释5.打开文件槽函数完整代码 三、视频播放器初始化1.QMediaPlayer()函数2.设置时间间隔的作用3. QGraphicsScene介绍4.QGraphicsVideoItem介…...

Stable Diffusion教程(8) - X/Y/Z 图表使用

1. 介绍 这项功能可以在 文生图/图生图 界面的左下角种 “脚本” 一栏内选择 “X/Y/Z 图表” 以启用。 它创建具有不同参数的图像网格。使用 X 类型和 Y 类型字段选择应由行和列共享的参数&#xff0c;并将这些参数以逗号分隔输入 X 值 / Y 值字段。支持整数、浮点数和范围。…...

Android 获取网关 ip 和 DNS ip

参考下方 PingUtil.java 代码 import android.content.Context; import android.net.DhcpInfo; import android.net.wifi.WifiManager; import android.text.format.Formatter;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; impor…...

Docker root用户的pip使用方法

Docker下root用户 pip install XX 显示pip命令不存在 # 原始目标&#xff1a;pip install XX pip install --root-user-actionignore 【XX】# (要安装的包)参考&#xff1a;WARNING: Running pip as the ‘root‘ user can result in broken permissions Linux 中 root 与 su…...

企业新片场排名如何优化

企业新片场排名如何优化 要如何去做关键SEO&#xff1f;第一个我们要做的就是做好 SEO 关键词的选词&#xff0c;一般就是会有第一个常用的选词方法&#xff0c;第一是以常用的提问词去做&#xff0c;不实像是情人节买什么礼物&#xff0c;母亲节买什么礼物&#xff0c; 618 有…...

Database Name

概述 DB_NAME与INSTANCE_NAME DB_NAME 数据库名称&#xff0c;也就是数据库的名字标示。这里&#xff0c;数据库里可能有多个实例&#xff0c;比如RAC里的多节点&#xff0c;这多个节点是不同的实例&#xff0c;但是却有相同的名字&#xff0c;他们的 DB_NAME是相同的&#xf…...

git代码版本管理

git 文章目录 git基本使用 基本使用 在一台新的电脑上使用git 你要下载安装git, 然后把git的安装路径配到系统环境变量里 然后把这台电脑的.ssh/ id_rsa.pub里的公钥整到github里 然后在github上新建仓库&#xff0c;它会生成一些指令引导上你传本地的代码 之后就可以在终…...

k8s概念-ConfigMap

回到目录 一般用于去存储 Pod 中应用所需的一些配置信息&#xff0c;或者环境变量&#xff0c;将配置于 Pod 分开&#xff0c;避免应为修改配置导致还需要重新构建 镜像与容器。 1 创建ConfigMap #使用 kubectl create configmap -h 查看示例&#xff0c;构建 configmap 对象…...

Mybatis 实体类属性名和表中字段名不一致怎么处理

一. 前言 最近耀哥有学生出去面试&#xff0c;被问到 “Mybatis实体类的属性名和表中的字段名不一致该怎么处理&#xff1f;”&#xff0c;这其实是一个很经典的面试题&#xff0c;接下来耀哥就为大家详细解析一下这道面试题。 二. 分析 2.1 实体类和字段名不一致所带来的后果…...

CAS - 从AtomicInteger窥探CAS

Unsafe类是CAS的核心&#xff0c;由于Java方法无法直接访问底层&#xff0c;需要通过本地方法(native)来实现&#xff0c;Unsafe类相当于一个桥梁。基于Unsafe类&#xff0c;可以直接操作特定的内存数据。 我们从上一篇说CAS基本原理的时候&#xff0c;有说到一个“资源”被100…...

micro-ros IMU ML 代码

示例代码&#xff1a; #include <micro_ros_arduino.h>#include "LSM6DSOXSensor.h" #include "lsm6dsox_activity_recognition_for_mobile.h"#include <stdio.h> #include <rcl/rcl.h> #include <rcl/error_handling.h> #inclu…...

二十三种设计模式第二十四篇--访问者模式(完结撒花)

在访问者模式&#xff08;Visitor Pattern&#xff09;中&#xff0c;我们使用了一个访问者类&#xff0c;它改变了元素类的执行算法。 通过这种方式&#xff0c;元素的执行算法可以随着访问者改变而改变。 这种类型的设计模式属于行为型模式。根据模式&#xff0c;元素对象已接…...

月报总结|Moonbeam 7月份大事一览

炎炎夏日&#xff0c;Moonbeam于越南举办了线下交流会&#xff0c;在EthCC 2023和以太坊社区成员共同讨论多链应用&#xff0c;在Polkadot Decoded中分享了Moonbeam的与众不同之处。 Bear Necessities Hackathon也于本月圆满结束&#xff0c;选出了每个赛道最杰出的项目&#…...

【2023.8】docker一键部署wvp-GB28181-pro和ZLMediaKit过程全记录

安装docker 使用的操作系统是ubuntu20.04 如何在 Ubuntu 20.04 上安装和使用 Docker https://developer.aliyun.com/article/762674 docker拉取配置好的ZLMediaKIt和wvp-GB28181-pro docker pull 648540858/wvp_pro第一次运行 docker一键运行ZLMediaKIt和wvp-GB28181-pro …...

【2023】字节跳动 10 日心动计划——第四关

目录 1. 买卖股票的最佳时机2. 打家劫舍 II 1. 买卖股票的最佳时机 &#x1f517; 原题链接&#xff1a;121. 买卖股票的最佳时机 假设在第 i i i 天卖出股票可获得最大利润&#xff0c;那么买入股票必然是在前 i − 1 i-1 i−1 天中的某一天。更进一步&#xff0c;买入股票应…...

数据库与数据仓库的区别及关系

数据库与数据仓库的区别及关系 数据库数据仓库异同差异联系例子 数据库 数据库是结构化信息或数据的有序集合&#xff0c;一般以电子形式存储在计算机系统中。通常由数据库管理系统 (DBMS) 来控制。它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集…...

Emacs之设置行号前景颜色(字体颜色)/背景颜色/光标颜色/背景透明度(一百二十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...