Maven基本配置

用来管理项目依赖的工具

1.配置maven加速

  • 打开配置文件conf/settings.xml,在<mirrors></mirrors>标签中添加子节点
  1. <mirror>
  2. <id>aliyunmaven</id>
  3. <mirrorOf>*</mirrorOf>
  4. <name>阿里云公共仓库</name>
  5. <url>https://maven.aliyun.com/repository/public</url>
  6. </mirror>

2.配置项目仓库

  • 下面以Spring仓库为例
  1. <repositories>
  2. <repository>
  3. <id>spring-releases</id>
  4. <name>Spring Releases</name>
  5. <url>https://repo.spring.io/release</url>
  6. <snapshots>
  7. <enabled>false</enabled>
  8. </snapshots>
  9. </repository>
  10. </repositories>

3.配置上传地址

  • 配置依赖上传nexus私服
  1. <distributionManagement>
  2. <repository>
  3. <id>nexus-releases</id>
  4. <url>http://192.168.0.101/repository/maven-releases/</url>
  5. </repository>
  6. <snapshotRepository>
  7. <id>nexus-snapshots</id>
  8. <url>http://192.168.0.101/repository/maven-snapshots/</url>
  9. </snapshotRepository>
  10. </distributionManagement>

4.Maven工程结构

  • modelVersion:指定POM模型版本
  • groupId:定义当前Maven组织名称
  • artifactId:定义实际项目名称
  • version:定义当前项目的当前版本
  • name:项目名字
  • packaging:项目打包方式
  • dependencies:添加依赖
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>cn.hzlim</groupId>
  7. <artifactId>MavenDemo</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <name>MavenDemo</name>
  10. <packaging>war</packaging>
  11. <dependencies>
  12. </dependencies>
  13. </project>

5.Maven全局配置

  • properties:配置当前项目的全局配置,可以定义变量
  1. <properties>
  2. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  3. <java.version>1.11</java.version>
  4. <maven.compiler.target>11</maven.compiler.target>
  5. <maven.compiler.source>11</maven.compiler.source>
  6. </properties>

6.Maven添加依赖

  • dependencies添加依赖
  1. <dependency>
  2. <groupId>javax.servlet</groupId>
  3. <artifactId>javax.servlet-api</artifactId>
  4. <version>4.0.1</version>
  5. <scope>provided</scope>
  6. </dependency>
  • scope:代表此依赖的范围 | 依赖范围 | 说明 | | —- | —- | | compile | 编译范围,指 A在编译时依赖 B,此范围为默认依赖范围。编译范围的依赖会用在 编译、测试、运行,由于运行时需要所以编译范围的依赖会被打包。 | | provided | provided 依赖只有在当 JDK 或者一个容器已提供该依赖之后才使用, provided 依 赖在编译和测试时需要,在运行时不需要,比如:servlet api 被 tomcat 容器提供。 | | runtime | runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如:jdbc 的驱动包。由于运行时需要所以 runtime 范围的依赖会被打包。 | | test | test 范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用, 比如:junit。由于运行时不需要所以test范围依赖不会被打包。 | | system | system 范围依赖与 provided 类似,但是你必须显式的提供一个对于本地系统中 JAR 文件的路径,需要指定 systemPath 磁盘路径,system依赖不推荐使用。 |

7.Maven常用命令

  • maven打包项目所需的命令 | 命令 | 说明 | | —- | —- | | mvn compile | 完成编译操作 , 执行完毕后,会生成target目录,该目录中存放了编译后的字节码文件。 | | mvn clean | 执行完毕后,会将target目录删除. | | mvn test | 执行完毕后,会在target目录中生成三个文件夹:
    surefire、surefire-reports(测试报告)、test-classes(测试的字节码文件) | | mvn package | 完成打包操作, 执行完毕后,会在target目录中生成一个文件,该文件可能是 jar、war | | mvn install | 执行 mvn install命令,完成将打好的jar包安装到本地仓库的操作 ,
    执行完毕后,会在本地仓库中出现安装后的jar包,方便其他工程引用 |

Maven模块化

1.父模块

  • modules:配置模块与子模块建立联系
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>cn.hzlim</groupId>
  7. <artifactId>MyParent</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <packaging>pom</packaging>
  10. <properties>
  11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  12. <java.version>1.11</java.version>
  13. <maven.compiler.target>11</maven.compiler.target>
  14. <maven.compiler.source>11</maven.compiler.source>
  15. </properties>
  16. <modules>
  17. <module>MyModel</module>
  18. </modules>
  19. </project>

2.子模块

  • parent:继承的pom,可以继承部分标签
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <parent>
  7. <groupId>cn.hzlim</groupId>
  8. <artifactId>MyParent</artifactId>
  9. <version>1.0-SNAPSHOT</version>
  10. <relativePath>../pom.xml</relativePath>
  11. </parent>
  12. <artifactId>MyModel</artifactId>
  13. <packaging>jar</packaging>
  14. </project>

3.元素继承

  • 可继承的元素
  1. groupId:项目组ID,项目坐标的核心元素
  2. version:项目版本,项目坐标的核心因素
  3. description:项目的描述信息
  4. organization:项目的组织信息
  5. inceptionYear:项目的创始年份
  6. url:项目的URL地址
  7. developers:项目的开发者信息
  8. contributors:项目的贡献者信息
  9. distributionManagement:项目的部署配置
  10. issueManagement:项目的缺陷跟踪系统信息
  11. ciManagement:项目的持续集成系统信息
  12. scm:项目的版本控制系统信息
  13. malilingLists:项目的邮件列表信息
  14. properties:自定义的Maven属性
  15. dependencies:项目的依赖配置
  16. dependencyManagement:项目的依赖管理配置
  17. repositories:项目的仓库配置
  18. build:包括项目的源码目录配置、输出目录配置、插件配置、插件管理配置等
  19. reporting:包括项目的报告输出目录配置、报告插件配置等

更新时间:{docsify-updated}