2024-Java-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>
<!-- 本工程的坐标信息,保证唯一性 -->
<groupId>com.lywtimer</groupId>
<artifactId>j-pure</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- 设置打包方式 默认jar,常用war,pom -->
<packaging>pom</packaging>
<modules>
<module>backend</module>
<module>demo</module>
</modules>
<!--
通常去设置依赖的版本
好处:统一管理版本;多个jar包使用同一个版本时,简化配置
${junit.jupiter.version}
-->
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<com.mysql.version>8.3.0</com.mysql.version>
<org.junit.jupiter.version>5.10.2</org.junit.jupiter.version>
</properties>
<!--
通过一个坐标信息去引用jar包
去 https://mvnrepository.com/ *仓库找
需要确认到本地仓库,如果出现异常问题可以删掉,重新下载。 D:\data\maven-repository\org\junit\jupiter\junit-jupiter-api\5.10.2
-->
<!-- 对子工程必须要的依赖,放在这里 -->
<dependencies>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>${com.mysql.version}</version>
</dependency>
</dependencies>
<!--
对子工程不是必须要的依赖,放在这里
虽然子工程还需要做一次依赖,但可以做版本控制
-->
<dependencyManagement>
<dependencies>
<!--
引用本地的项目,需要 install
-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${org.junit.jupiter.version}</version>
<!--
手动排除依赖
-->
<exclusions>
<!-- <exclusion>-->
<!-- <groupId>com.mysql</groupId>-->
<!-- <artifactId>mysql-connector-j</artifactId>-->
<!-- </exclusion>-->
</exclusions>
<!--
依赖范围
编译(main/java)
测试(main/test)
运行/打包(包含在打的包中)
test 编译× 测试√ 打包× junit
provided 编译√ 测试√ 打包× servlet
compile 编译√ 测试√ 打包√ 默认
runtime 编译× 测试√ 打包√ 反射、数据库驱动
system = provided 不会依赖仓库中的jar包,结合<systemPath>使用,已经废弃
1.首先 依赖范围建议,哪怕所有的范围都设置compile,也不影响正常使用
2.*仓库会提供scope,IDEA有自动补全功能
3.大多数包都是compile
-->
<!--作用访问是 test、provided 就不会传递-->
<scope>test</scope>
<!--是否传递 默认是false,会传递-->
<optional>false</optional>
</dependency>
</dependencies>
</dependencyManagement>
</project>