maven配置
约 1279 字大约 4 分钟
2026-04-04
MAVEN配置
设置 Maven 环境变量
新建系统变量 MAVEN_HOME,变量值:自己的安装文件夹

编辑系统变量 Path,添加变量值:
;%MAVEN_HOME%\bin
mvn -versionmaven源设置
maven镜像-maven下载地址-maven安装教程-阿里巴巴开源镜像站 (aliyun.com)
apache-maven-3.6.3\conf\settings.xml
<!--本地仓库路径-->
<localRepository>D:/360Downloads/maven/apache-maven-3.6.3-bin/repository</localRepository>
<mirrors>
<!-- 阿里云仓库 -->
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
<id>jdk-11</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>11</jdk>
</activation>
<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.compilerVersion>11</maven.compiler.compilerVersion>
</properties>
</profiles>IDEA配置maven
运行maven项目



依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- 坐标 /com/mvn/demo/1.0-SNAPSHOT -->
<groupId>com.mvn.demo</groupId>
<artifactId>demo_maven</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- jar依赖配置-->
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-core -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<!-- 插件-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
</project>导入自己的项目
<dependencies>
<dependency>
<groupId>com.mvn.demo</groupId>
<artifactId>demo_maven</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>支持jsp,servlet
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
依赖管理
依赖范围
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>| scope取值 | 有效范围(compile, runtime, test) | 依赖传递 | 例子 |
|---|---|---|---|
| compile | all | 是 | spring-core |
| provided | compile, test | 否 | servlet-api |
| runtime | runtime, test | 是 | JDBC驱动 |
| test | test | 否 | JUnit |
| system | compile, test | 是 |
Maven之scope详解 - satire - 博客园 (cnblogs.com)
打包方式
zip
tar
tar.gz (or tgz)
tar.bz2 (or tbz2)
tar.snappy
tar.xz (or txz)
jar
dir
war父工程demo_maven
<modelVersion>4.0.0</modelVersion>
<!-- 坐标 /com/mvn/demo/1.0-SNAPSHOT -->
<groupId>com.mvn.demo</groupId>
<artifactId>demo_maven</artifactId>
<version>1.0-SNAPSHOT</version>
<modules>
<module>dem_children</module>
<module>demo_utils</module>
</modules>
<!-- 打包方式 pom,jar,war-->
<packaging>pom</packaging>子工程demo_utils
<parent>
<artifactId>demo_maven</artifactId>
<groupId>com.mvn.demo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>demo_utils</artifactId>
<version>1.0</version>同级子工程demo_children
<parent>
<artifactId>demo_maven</artifactId>
<groupId>com.mvn.demo</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>dem_children</artifactId>
<version>1.0</version>
<!-- 导入demo_utils-->
<dependencies>
<dependency>
<groupId>com.mvn.demo</groupId>
<artifactId>demo_utils</artifactId>
<version>1.0</version>
</dependency>
</dependencies>依赖冲突
1. 使用第一声明者优先原则
谁先定义的就用谁的传递依赖,即在pom.xml文件自上而下,先声明的jar坐标,就先引用该jar的传递依赖。
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
</dependencies>2. 使用路径近者优先原则
即直接依赖级别高于传递依赖
3. 排除依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.7.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>spring-core</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
</dependencies>4. 版本锁定
使用dependencyManagement 进行版本锁定,dependencyManagement可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致。
仅仅起到指锁定依赖版本的作用,其它的作用它什么都没有
<!--锁定依赖的版本,它仅仅是起到锁定作用,不下载依赖包-->
<dependencyManagement>
<dependencies>
<!-- Junit单元测试依赖 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 版本常量-->
<properties>
<lombok-version>1.18.20</lombok-version>
</properties>
<!-- 版本锁定-->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok-version}}</version>
</dependency>
</dependencies>
</dependencyManagement>dependencies和dependencyManagement的区别:
dependencies是真正引入依赖的元素。而且在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)。 dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的在dependencies中声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的依赖版本。
手动部署到服务器
新建web模块

配置web目录

maven编译,打包,安装
https://blog.csdn.net/zhan107876/article/details/93197985
复制打包好的.war文件

设置tomcat管理用户名密码

<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>cmd启动tomcat

startup 启动
shutdown 停止
localhost:8080/manager
输入账号密码贡献者
更新日志
2026/4/5 03:39
查看所有更新日志
fb8bc-更新为vuepress于
